2015-07-22 1 views
5

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

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

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

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

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

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

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

+1

Я столкнулся же вопрос в Моем запуске службы приложения должным образом во всех устройствах, кроме Xiaomi реого. Мой сервис занимает до 5 минут для перезапуска, но я нашел что-то вроде приложения app, facebook, instagram, которое перезапускается через несколько секунд. Это показывает в Running App. – Hardik

ответ

1

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

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

MIUI 4.0 settings

MIUI AutoStart Detailed Description

+0

Это сработало! Спасибо за решение. Интересно, так ли это для других устройств. – devmaestro

+2

пользователю необходимо вручную изменить настройки. Есть ли возможность запускать приложение, например whatsup, skype, instagram, видеовстречи –