Запуск потока, пока приложение Android находится на переднем плане - PullRequest
0 голосов
/ 05 августа 2011

У меня есть приложение для Android. У меня есть основной вид деятельности, у которого есть кнопка. Когда кнопка нажата, другой вид деятельности выходит на первый план. Дело в том, что я хочу запустить фоновый поток, который опрашивает обновления с сервера. Однако я хочу, чтобы оно запускалось только тогда, когда приложение находится на переднем плане (либо основное действие, либо второе), и прекращать опрос, когда пользователь нажимает кнопку «Домой» или нажимает кнопку «Назад», пока не вернется из основного действия.

Но как мне узнать, находится ли приложение на переднем плане? Я могу поймать onPause основного действия, но оно также вызывается, когда я запускаю второе действие.

Так как узнать, когда приложение в фоновом режиме?

Спасибо

Ответы [ 3 ]

1 голос
/ 05 августа 2011

Вы должны сделать Сервис для работы, которую вы делаете в фоновом режиме.

Чтобы остановить его, когда вы нажимаете кнопку «Домой» или «Назад», просто сделайте прослушиватель для них и остановите службу, когда нажмете любую из них.

0 голосов
/ 05 августа 2011

Вы можете иметь синглтон с подсчетом ссылок. Ваша основная деятельность должна добавить первую ссылку на ее onResume, и теперь, при вызове каждой новой операции (например, startActivity), вы должны добавить ссылку. Каждое действие должно уменьшать число ссылок, считая его onPause.

Другой вариант - воспользоваться услугами: Услуги

0 голосов
/ 05 августа 2011

Мне кажется, что каждый вид деятельности опрашивается. Это супер важно, чтобы он мог опросить, когда он находится между двумя действиями? В противном случае у вас будут проблемы с определением, кто впереди или нет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...