Приложения для Android и таймеры - PullRequest
2 голосов
/ 29 июня 2009

Здравствуйте, у меня есть приложение для Android, на котором запущена служба. Через 20 минут после запуска этой службы и других систем (such as GPS) я бы хотел, чтобы она автоматически остановилась. Я полагаю, мне нужно использовать таймер для этого?

Может кто-нибудь показать пример того, как я мог это сделать?

Ответы [ 2 ]

2 голосов
/ 29 июня 2009

Может быть, вам даже не нужен таймер для этого. Просто отслеживайте, когда ваша служба была запущена, сохраняя [System.currentTimeMillis()] (http://developer.android.com/reference/java/lang/System.html#currentTimeMillis() в переменной-члене и [stopSelf] (http://developer.android.com/reference/android/app/Service.html#stopSelf() вашу службу, всякий раз, когда вы достигаете тайм-аута.

Например, включите в занятую часть вашей службы следующее:

if(System.currentTimeMillis() - TIMEOUT > startTime) {
    stopSelf();
}
1 голос
/ 29 июня 2009

Я бы использовал AlarmManager. Настройте однократный будильник на 20 минут. В автономном BroadcastReceiver, который получает сигнал тревоги, звоните stopService().

У меня есть сообщение в блоге и несколько примеров кода в одной из моих книг , которые охватывают AlarmManager, хотя все они охватывают "сценарий cron", где вы хотите получить контроль во время загрузки и установить повторяющийся сигнал тревоги.

...