У меня есть служба, которая проверяет веб-страницу каждые 60 секунд. Для этого я использую asyncTask в службе и делаю ее Thread.thisThread.sleep (60000); перед проверкой
Пожалуйста, не делайте этого.
Во-первых, сделайте период настраиваемым, включая опцию «не делай этого, никогда». Пользователям действительно не нравится, когда разработчики пишут приложения, основной целью которых является израсходовать тонну батареи. Бодрствование устройства и опрос веб-сервера каждую минуту потребляют массу времени автономной работы. Именно такое поведение заставляет пользователей запускать каждого убийцу задач, которого они могут найти.
Во-вторых, особенно для периодов больше минуты или около того, пожалуйста, используйте AlarmManager
и [WakefulIntentService
] [1]. Запланируйте AlarmManager
для вызова вашего приложения в выбранный пользователем период (в идеале через setInexactRepeating()
). Попросите WakefulIntentService
опросить вашу веб-страницу. Если вы будете следовать задокументированному рецепту WakefulIntentService
, устройство будет бодрствовать достаточно долго, чтобы вы могли получить данные, а затем снова заснет. Ваш сервис не останется в памяти все время. Вы получаете свою функциональность, а пользователь получает лучшую производительность устройства.