2016-09-25 2 views
-2

Я реализовал начатый Service, который предназначен для продолжения работы в фоновом режиме (onStartCommand returns START_STICKY). На устройстве 5.1 я обнаружил, что прокрутка текущей задачи из последних задач убивает Service, и она не перезапускается, что не относится к устройству 4.2.Избегайте зависания приложения Android в фоновом режиме

Обходные пути, предложенные на SO для установки аварийного сигнала для перезапуска service после 1 с, тоже не сработали.

После некоторых исследований я выяснил, что в настройках BATTERY у нас есть опции, чтобы указать, следует ли замораживать приложения, когда они находятся в фоновом режиме. Поведение по умолчанию - это замораживание выполнения фона.

Есть ли какой-либо конкретный permissions, что мне нужно, чтобы приложение продолжало работать в фоновом режиме?

+0

EDIT: сервис был реализован с помощью функции startForeground(). Известно, что сообщение 4.4 убивает службу, когда приложение выкачивается с экрана ретентатов. Хотя некоторые предложения были опубликованы, они не разработаны для меня. Тем не менее, я обнаружил, что этот специфический переключатель помогает. Я не уверен, можем ли мы преодолеть это программно и, следовательно, мой запрос на любые указатели. –

ответ

0

избежать фоновых проблем, вам нужно избегать Ui обновления в функции

protected void onPause() { 

вашей деятельности.

Если вы используете услугу Для Android 2.0 или более поздней версии вы можете использовать метод startForeground(), чтобы начать обслуживание на переднем плане.

Запущенный сервис может использовать startForeground (Int, Notification) API поставить службу в плане государства, в котором система считает , что это будет что-то пользователь активно осознает и, таким образом, не кандидата для убийства при низком уровне памяти.

Смежные вопросы