Служба останавливается, когда телефон спит

Я создал службу (AutoTestService) для выполнения некоторых задач за один цикл. После завершения цикла установка сигнала тревоги для следующего цикла для выполнения задачи (сигнал тревоги снова вызывает AutoTestService). В каждой задаче я приостанавливаю поток на 10/20 (используя Thread.sleep) секунд и перехожу к следующей задаче. Я запускаю службу для WakefulBroadcastReceiver с помощью AlarmManager.

Он работает нормально, когда экран телефона включен и подключен к USB. Но если телефон спит без USB, моя служба останавливает выполнение. Я подозреваю, что thread.sleep не возобновляется, когда телефон находится в спящем режиме. Приложение работает на Android 5.1 и 5.1.1.

Может ли кто-нибудь дать предложение приветствуется. Я долго борюсь с этим.


person Sri    schedule 05.02.2016    source источник
comment
Вы пробовали с Service#startForeground(). У меня работает нормально.   -  person m0skit0    schedule 05.02.2016
comment
я этого не делал. Где использовать этот startForeground   -  person Sri    schedule 05.02.2016
comment
В Службе. Проведите небольшое исследование самостоятельно. Прочтите документацию, которую я вам дал, она объясняется в начале страницы.   -  person m0skit0    schedule 05.02.2016


Ответы (1)


Используйте IntentService.

Класс IntentService предоставляет простую структуру для выполнения операции в одном фоновом потоке. Это позволяет ему выполнять длительные операции, не влияя на скорость отклика вашего пользовательского интерфейса. Кроме того, на IntentService не влияет большинство событий жизненного цикла пользовательского интерфейса, поэтому он продолжает работать в обстоятельствах, которые могут привести к закрытию AsyncTask.

person Hector    schedule 05.02.2016
comment
Я также пробовал с IntentService, но все тот же ответ - person Sri; 05.02.2016
comment
И вы используете собственный поток IntentService? не создать еще один? - person Hector; 05.02.2016
comment
IntentService используется без потока, потому что у него есть собственный Runnable . Но с помощью службы я использовал новый поток. - person Sri; 05.02.2016