Ненадежный ScheduledExecutorService в Сервисе - PullRequest
0 голосов
/ 07 марта 2020

Я создал 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;
}
...