私は現在1回だけ実行されているAsyncTaskを持っており、終了するのに約5〜30秒かかります。前のタスクが完了した後、AsyncTaskを定期的に実行してください。
私がやりたいことはある:
1.アプリケーション
2.を実行し、それが終了するのをタスク
3.待ちます。
4.一定時間待機する。 5秒
5.繰り返し手順2
私はHandlers
を使用することをお勧め周りにいくつかの記事を見て、それは私がそれを行うにしようとしている方法は次のとおりです。
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
final Activity activity = this;
final Handler handler = new Handler();
handler.postDelayed(new Runnable() {
public void run() {
// Start AsyncTask
new MyTask(activity).execute();
}
}, 5000); //Every 5 seconds
}
MyTask
はAsyncTaskのサブクラスでありますいくつかの別の.javaファイル。
これは、起動時に5秒遅れてタスクを1回だけ実行します。必要に応じて再実行されません。
私は次のタスクがまだ実行されていない場合にのみ実行し、5秒後に実行したいとします。
なぜ、それが例外として機能しないのですか?
ハローCPXを必要な場所概要でき
scheduledThreadPoolExecutor.scheduleWithFixedDelay
scheduledFutureListDevices
の結果を代入していますが、はい、それを解決するには、実行可能とハンドラを使用することですが、ありません、代わりにScheduledThreadPoolExecutorを使用してください。これは安全で、Androidの優れたパフォーマンスを念頭に置いて設計されています。 https://developer.android.com/reference/java/util/concurrent/ScheduledThreadPoolExecutor.html –