Intereting Posts
Отсутствие сервисов Google Play от AVD Ormlite setup без использования базовых действий Как установить метки для оси X и Y в двухстрочной диаграмме с помощью aChartEngine в android? Android Wifi прямого множественного соединения ad-hoc Retrofit 2 – получить объект ошибки JSON (несколько POJO для одного запроса) Динамический вывод текста строки на экране Android Использование SurfaceTexture в Android В каких условиях возможны изменения в версии 3 для клиентских приложений, внесенные в клиентские устройства? Высота отображения уведомлений о статусе Android Как реализовать кнопку Android ActionBar назад? Android: несколько аудиодорожек в VideoView? В чем смысл FILL_AND_STROKE? Как реализовать событие Swipe для просмотра Flipper в ViewPager? Android 4.4 и выше – WebView Не удается вызвать definedVisibility () – никогда не видел подключения для pid Неиспользуемые ресурсы андроидного lint из библиотечного модуля используются в приложении

Перезапуск убитых (остановленных задачами-убийцами) служб в android, таких как Whatsapp

Я работаю над приложениями, которые имеют некоторые фоновые сервисы (для блокировки приложений). Я использую Xiaomi Redmi Note 4g для разработки. MIUI имеет встроенный диспетчер задач, который можно использовать для уничтожения запущенных приложений. Когда я убиваю приложения с этим, все службы, передатчики и будильники удаляются (как и ожидалось от диспетчера задач). Мое требование состоит в том, чтобы мои фоновые службы не очищались от убийц задач, но если пользователь переходит к настройкам и принудительно закрывает, служба должна остановиться. Как мне это достичь?

Кстати, я знаю, что это невозможно сделать с тех пор, как Whatsapp и Truedialer (некоторые egs) уже делают это на последних версиях Android.

Мои наблюдения от Whatsapp:

  • Я убью приложение из диспетчера задач
  • Все службы в Whatsapp остановлены, за исключением «MessagingService»
  • В представлении списка запущенных приложений отображается статус «Перезапуск»,
  • Служба «AlarmService» запускается (не уверен, что MessagingService запускает ее или из AlarmManager)
  • После временной задержки все службы работают и работают

Примечание. Таймер на MessagingService не сбрасывается, и он по-прежнему продолжает тикать. Но если я заставляю остановить службу, ее не запускать снова, пока я вручную не запустил приложение.

Аналогичные наблюдения сделаны для TrueDialer.

Я попытался воспроизвести это с помощью START_STICKY, AlarmManager, BroadcastReceiver, но не увенчался успехом. Может ли кто-нибудь помочь мне в этом? Я просто хочу понять, как Whatsapp достигает этого. Не стесняйтесь спрашивать, нужна ли вам дополнительная информация.

Я решил проблему.

Решение для MIUI 7.0 => Безопасность => Автозапуск => выберите Приложения, которые вы хотите запустить в фоновом режиме => Перезагрузка После перезагрузки ваше устройство должно работать с вашими приложениями в фоновом режиме, как это делают другие устройства для Android.

Настройки MIUI 4.0

MIUI AutoStart Подробное описание