У меня есть фоновое задание, которое я запускаю с помощью ScheduledThreadPoolExecutor с таким кодом.Android ScheduledThreadPoolExecutor немедленно выполняет отложенную задачу
executor.scheduleWithFixedDelay(new BackgroundSync(), 0, 15, TimeUnit.MINUTES);
BackgroundSync реализует Runnable.
Иногда из пользовательского события я хочу, чтобы отложенное событие выполнялось сейчас, а не при выключении 15-минутного таймера.
Некоторые требования:
- Там должен быть только один «BackgroundSync» работает в то время
- Основе событие пользователя, я должен быть в состоянии немедленно планировать BackgroundSync, если ее не работает уже.
Как вы различаете, когда запускать отложенную и когда запускать сейчас? На основании чего? –
Чтобы уточнить эту повторяющуюся задачу, вы планируете сразу каждые 15 минут. Однако, если пользователь нажимает на определенную кнопку, мне нужно запустить задачу сразу же, считая ее не запущенной. – bluphoenix