Как я могу удостовериться, что сервис запускается в 9:00 и остановленное 21:00 каждый день?

У меня есть сервис, который будет ежедневно наблюдать изменения местоположения. Что я знаю до сих пор, что для запуска сервиса при начальной загрузке я должен следовать связанному учебному руководству. Таким образом, я мог запустить сервис при начальной загрузке, но сохранить батарею мне нужен он только между 9:00 - 21:00.

Вопрос довольно прост, таким образом, я повторюсь:

Как я могу удостовериться, что сервис запускается в 9:00 и остановленное 21:00 каждый день?

1
задан Pentium10 25 June 2010 в 17:47
поделиться

2 ответа

Используйте AlarmManager, чтобы установить два сигнала тревоги, каждый с PendingIntent, который вызовет startService() на вашем сервисе, но с разными строками действия ('start', 'stop'). Когда onStart() вашей службы обнаружит действие 'stop' Intent, она организует упорядоченное завершение работы (например, stopSelf()).

Это не сработает, если пользователь применит к вам диспетчер задач в Android 2.1 или более ранней версии, поскольку техника, которую они обычно используют, уничтожит ваши оповещения (в дополнение к уничтожению службы). В этом случае пользователь, предположительно, голосует за то, чтобы ваша служба не запускалась, поэтому вам следует попытаться учесть его пожелания.

2
ответ дан 2 September 2019 в 23:29
поделиться

CommonsWare прав. Это лучший способ. Вы пишете приложение и лучше ничего не менять вне приложения. Если вы хотите добавить системную службу (при запуске службы при загрузке), вам необходимо изменить BSP и добавить свою службу в systemserver.java. Это не рекомендуется, потому что с этой задачей может справиться предложение MonsWare. Как вы сказали об активности, вы можете запустить ее, когда получите загрузочную трансляцию. Тогда делайте, что хотите .....

0
ответ дан 2 September 2019 в 23:29
поделиться
Другие вопросы по тегам:

Похожие вопросы: