私はこのようなコードでScheduledThreadPoolExecutorを使用して実行するバックグラウンドタスクを持っています。Android ScheduledThreadPoolExecutorは遅延タスクをすぐに実行します
executor.scheduleWithFixedDelay(new BackgroundSync(), 0, 15, TimeUnit.MINUTES);
BackgroundSyncはRunnableを実装します。
ユーザイベントから、遅延イベントが今すぐ実行され、15分タイマーがオフになることはありません。
いくつかの要件:
- だけそのがまだ実行されていない場合、私はすぐにBackgroundSyncをスケジュールすることができるはずユーザイベントをオフに基づいて、時間
- で実行されている一つの「BackgroundSync」があるはずです。
遅延実行時と実行時を区別する方法を教えてください。何に基づいて? –
これを明確にするために、この定期的なタスクは15分ごとに直ちにスケジュールされます。しかし、ユーザーが特定のボタンをクリックした場合、私はそのタスクが既に実行されていないと仮定してすぐに実行する必要があります。 – bluphoenix