Как вы знаете, мы запускаем JobIntentService
:
JobIntentService.enqueueWork(this,
MyJobIntentService.class,
JOB_ID,
intent);
. В этом подходе мы ЗНАЕМ , какой сервис мы хотим запустить и передаем его класс методу.
Вот мой вопрос : Есть ли способ запустить службу неявно ?
Зачем мне это нужно? Я занимаюсь разработкой библиотеки, которая иногда должна запускать службу, которую разработчик расширяет, и, очевидно, у меня нет доступа к ней из библиотеки
Что я пробовал? Я реализовал ее с IntentService
(используя фильтры намерений)и работал нормально для устройств до O, но для Android Oreo я получаю этот журнал сбоя:
Неустранимое исключение: java.lang.IllegalStateException: Не разрешено запускать службу Intent {act = someAction pkg = somePackage(имеет дополнительные функции)}: приложение находится в фоновом режиме uid UidRecord {de24eda u0a238 RCVR простаивает: 1 сек (0,0,0)}
Итак, я перешел на JobIntentService
, теперь проблема в том,что я не могу начать это неявно.
Любое решение или альтернатива будут оцененыованные.