#android #android-studio #broadcastreceiver #android-service #android-broadcast
Вопрос:
Я хочу запустить службу после перезагрузки или включения устройства. На данный момент все отлично работает на моем устройстве Android 8.1. Но устройство Android 11 не запускает мой сервис, я не получаю никаких ошибок. Вот мой код:
Файл манифеста:
lt;uses-permission android:name="android.permission.FOREGROUND_SERVICE" /gt; lt;uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" /gt; lt;service android:name=".service.ServiceManager" android:exported="false" /gt; lt;receiver android:name=".receiver.AutoRebootReceiver" android:enabled="true" android:exported="true" android:permission="android.permission.RECEIVE_BOOT_COMPLETED"gt; lt;intent-filter android:priority="99999"gt; lt;action android:name="android.intent.action.BOOT_COMPLETED" /gt; lt;action android:name="android.intent.action.SCREEN_ON" /gt; lt;action android:name="android.net.wifi.WIFI_STATE_CHANGED" /gt; lt;/intent-filtergt; lt;/receivergt;
Комментарии:
1. FWIW, вы не можете запускать фоновые службы из фона в более новых версиях Android.
2. Есть ли какой-либо обходной путь, чтобы заставить функциональность моего приложения работать после перезагрузки устройства?
3. Я не знаю, что такое «функциональность [вашего] приложения». Что делает служба, является ли она службой переднего плана и почему вы пытаетесь запустить ее при загрузке устройства?
4. Эта служба отслеживает установку и удаление других приложений и предлагает очистить кэш, а также показывает уведомления пользователю.
5. «Эта служба отслеживает установку и удаление других приложений» — я не знаю, зачем вам для этого нужна служба, не говоря уже о той, которая запускается во время загрузки. Вы больше не можете узнать об установке/удалении по трансляциям. Для опроса вы можете использовать
WorkManager
, который может постоянно повторять работу при перезагрузках.