WorkManager отменяется после перехода телефона в режим ожидания на телефонах Samsung Galaxy - PullRequest
0 голосов
/ 09 июня 2018

Я пытаюсь запустить фоновый сервис с WorkManager.Я запустил WorkManager, когда приложение переходит в фоновый режим.И я также запускал фоновый сервис всякий раз, когда работает WorkManger.После того, как приложение перешло в фоновый режим, я вижу свой сервис приложений.Также я вижу, что он запускается примерно через 15 минут после закрытия приложения, проведя пальцем по списку приложений.Так что я уверен, что рабочий менеджер работает во время запуска.Но я думаю, что это не работает в режиме ожидания.Я не смог увидеть свой сервис после выхода телефона из режима ожидания.

Мой код:

public class MyWorker extends Worker {

  public MyWorker() {
    super();
  }

  @NonNull
  @Override
  public WorkerResult doWork() {

    Intent intent = new Intent(getApplicationContext(), MyService.class);

    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
        MyJobIntentService.enqueueWork(getApplicationContext(), new Intent());
    } else {
Intent intent = new Intent(getApplicationContext(), MyService.class);
        getApplicationContext().startService(intent);
    }

    return WorkerResult.SUCCESS;
  }
}

public void startWorkManger() {

  PeriodicWorkRequest request = new PeriodicWorkRequest
         .Builder(MyWorker.class, MIN_PERIODIC_INTERVAL_MILLIS, TimeUnit.MILLISECONDS).addTag(TAG).build();
  mWorkManager.enqueue(request);
}

Что-то не так?

1 Ответ

0 голосов
/ 21 июня 2019

JobScheduler будет выполнять задания с интервалами обслуживания только в режиме ожидания.Это делается для экономии батареи пользователя.То, что вы видите, ожидается.

Для получения дополнительной информации прочитайте эту документацию по режиму Doze.https://developer.android.com/training/monitoring-device-state/doze-standby

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...