2017-01-15 11 views
4

私は答えを探してみましたが、いくつか見つけましたが、私のために働いていませんでした。私は別の公的voidメソッドを開始する前に5秒待つ必要があります。スレッドの睡眠は私のために働いていませんでした。あなたの提案をお願いします。スレッドを使わずに「待つ」方法があるなら、それを知りたいです。5秒待つ

public void check(){ 
//activity of changing background color of relative layout 
} 

相対レイアウトの色を変更する前に3秒間待つ必要があります。

+0

[スレッドやプロセスをAndroidで一時停止/スリープする方法]の可能な複製?(http://stackoverflow.com/questions/1520887/how-to-pause-sleep-thread-or-process-in-android) – till

+0

@指定されたものまで私はこれらをチェックしましたが、私のためにはうまくいかなかったのですが、考慮してくれてありがとう:) – Anonymous

+0

参照された質問の回答と選択した回答の違いを実際に見ることはできません... – till

答えて

3

をちょうどラムダ

でワンライナーを追加
(new Handler()).postDelayed(this::yourMethod, 5000); 
+0

注:これはJava 8を使用するアプリケーションでのみ機能します。 –

14

これが機能するかどうかを確認してください。

 Handler handler = new Handler(); 
      handler.postDelayed(new Runnable() { 
       public void run() { 
        // yourMethod(); 
       } 
      }, 5000); //5 seconds 
+0

ありがとう、 – Anonymous

+0

ハンドラが抽象化されていると言うエラーが発生する – Anonymous

+0

私はそれが私の側からのエラーだと思います。明日は新鮮な心でそれを再度チェックします – Anonymous

4

、あなたのタスクを達成するためにJavaのハンドラを使用することができます。

Handler handler = new Handler(); 
handler.postDelayed(new Runnable() { 
    public void run() { 
    // Actions to do after 10 seconds 
    } 
}, 10000); 

詳細については、下記のURLをお読みください。

https://developer.android.com/reference/android/os/Handler.html

関連する問題