Как защитить фоновое обслуживание / аварийные сигналы, которые нужно убить в недавно запущенных устройствах в настраиваемых ОС, таких как oppo – coloros, vivo-funtouch os, Xiomi-MIUI os?

У меня есть WakefulBroadcastReceiver с IntentService , каждые полчаса тревоги вызываются и делают некоторые вещи. Я уже обрабатываю режим setExactAndAllowWhileIdle() с setExactAndAllowWhileIdle() метода setExactAndAllowWhileIdle() .

Некоторые новые смартфоны с настраиваемыми os, недавно запущенными на рынке, имеют собственные настройки os на основе android os. Как oppo с цветом os, vivo с funtouch os, xiomi с MIUI os. В ОС есть функция для очистки памяти. У них есть опция с одним касанием. Например, если пользователь очистит недавний список приложений или удалит приложение из всех последних приложений приложения списка приложений, а также все аварийные сигналы будут убиты.

Как работать с этими новыми ОС?

    Для телефонов MIUI вам необходимо отключить режим энергосбережения, тогда ваше приложение может работать в фоновом режиме.

    Процедура : выберите «Настройки» -> « Аккумулятор» – « Управление потреблением батареи приложения» -> Нажмите « Отключить» или « Выберите приложение».

    Программно :

      Intent intent = new Intent(); intent.setClassName("com.miui.powerkeeper", "com.miui.powerkeeper.ui.HiddenAppsContainerManagementActivity"); startActivity(intent); 

    Для устройств Oppo выполните следующие действия:

    1. Настройки -> Аккумулятор -> Ваше приложение -> Запретить оба варианта .

    Программно :

     Intent intent = new Intent(); intent.setClassName("com.coloros.oppoguardelf", "com.coloros.powermanager.fuelgaue.PowerConsumptionActivity"); startActivity(intent); 
    1. Безопасность -> Разрешение конфиденциальности -> Менеджер StartUp -> Разрешить ваше приложение .

    Программно :

     Intent intent = new Intent(); intent.setClassName("com.coloros.safecenter", "com.coloros.safecenter.permission.startup.StartupAppListActivity"); startActivity(intent); 
    1. Заблокируйте приложение на вкладке последнего приложения , перетащив его вниз.

    Это сработало для меня, надеюсь, это тоже сработает для вас 🙂

    В случаях, когда ваше приложение убито из-за его удаления из списка последних приложений, вы можете переопределить android.app.Service.onTaskRemoved() чтобы запланировать перезапуск приложения или подобное.

    Во всех других случаях, когда пользователь явно предпринимает действия, чтобы убить ваше приложение (например, сделать «принудительное прекращение» из настроек), так и должно быть. Не пытайтесь обойти это. Пользователь хочет убить ваше приложение. Пусть он умрет и восстановит функциональность при следующем запуске приложения пользователем.

    Intereting Posts
    Как я могу использовать режим пакетной камеры для новых телефонов Android в моем приложении? Почему в моем Android GridView есть дополнительные пиксели? Android okHttp addFormDataPart динамически для нескольких изображений Добавить 3D-объект для отображения и панорамирования вокруг него Открытое приложение для Android-разработчиков google для Android, получающее инструкции, начиная с текущей позиции Есть ли разработчик приложений для Android? Не удается разрешить символ c882c94be45fff9d16a1cf845fc16ec5 Список элементов с чередующимися цветами Граница (как тень) прочная и большая на TextView Android Как получить идентификатор игры Google Play с новыми обновленными игровыми играми Google Gamer ID? Обработка разрешений в одном классе в android Метод, вызванный после исключения release (), не смог возобновить работу с камерой android Действие TIME_SET в android получает вызов много раз, не меняя время вручную Граница формы Android с градиентом Одновременно выберите только один переключатель в пользовательском списке, андроид