2017-03-27 3 views
0

5秒後にメソッドを呼び出そうとしています。私はOnCreate関数でこのコードを書いていますが、一度しか実行されません。私は間違って何をしていますか?私は数秒後に関数を呼び出すためにhandlerを使用していますが、機能していません。

new Handler(Looper.getMainLooper()).postDelayed(new Runnable() { 
     @Override 
     public void run() { 
      getData(); 
     } 
    }, 5000); 
+0

"getData()"ハンドラを "handler.postDelayed(this、5000);"で再度呼び出す必要があります。 – oskarko

答えて

1

ハンドラはメッセージを1回だけ実行するためです。あなたはそれが複数回(5秒遅れでそれぞれ)を投稿したい場合は、このような何かを実行する必要があります。

final Handler handler = new Handler(Looper.getMainLooper); 
handler.postDelayed(new Runnable() { 
     @Override 
     public void run() { 
      getData(); 
      handler.postDelayed(this, 5000); 
     } 
    }, 5000); 

これは、一度実行し終わっ新しい遅延と同じ実行可能にreposts。

+0

ありがとう、それは働いた:) – user2275917

関連する問題