AlarmManager для вызова службы в Android P: startForegroundService - PullRequest
0 голосов
/ 13 декабря 2018

Я использую AlarmManager, как показано ниже, и он нормально работает для Android O и ниже.

AlarmManager mgr=(AlarmManager)context.getSystemService(Context.ALARM_SERVICE);
        Intent i=new Intent(context, PeriodicChecksService.class);
        PendingIntent pi=PendingIntent.getService(context, 0, i, PendingIntent.FLAG_UPDATE_CURRENT);
        mgr.setRepeating(AlarmManager.ELAPSED_REALTIME_WAKEUP, SystemClock.elapsedRealtime() + firstGoOffTime, frequencyInMS , pi);

Но в Android P появляется ошибка ниже в Logcat:

Фонзапуск запрещен: Сервисное намерение? = false

Я полагаю, потому что мы должны использовать startForegroundService при запуске службы.Как мы это делаем в AlarmManager?

1 Ответ

0 голосов
/ 13 декабря 2018

После Android O вы можете использовать PendingIntent.getForegroundService.

Получить PendingIntent, который запустит службу переднего плана, например, вызвать Context.startForegroundService ().Начальные аргументы, переданные службе, будут получены из дополнений Intent.

...