Я создал ScheduledExecutorService
в моем Service
, который должен запускать управляемые правила. Во время отладки все работает нормально. Но на смартфоне runnable
выполняется намного позже, а Service
иногда падает. Запуск планируется каждые 8-30 минут. Что я могу сделать, чтобы сделать Service
более надежным? Есть ли лучшие способы реализовать этот план? (прежде чем я использовал Thread
и ExecutorService
с почти одинаковыми результатами). Вот мой текущий код:
public class MyService extends Service {
private final ScheduledExecutorService scheduler =
Executors.newScheduledThreadPool(1);
@Override
public int onStartCommand(Intent intent, int flags, final int startId) {
final Runnable runnable = new Runnable() {
@Override
public void run() {
//do something regulary
scheduler.schedule(this,getDelay(),MILLISECONDS);
}
};
//create notification channel, notification and startForegorund()
scheduler.schedule(runnable,1,MINUTES);
return START_STICKY;
}