Android: Восстановление активности, когда я нажимаю Home - PullRequest
5 голосов
/ 22 апреля 2010

У меня следующий вопрос.

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

Я читал о цикле жизнедеятельности, но не нахожу четкого решения.

То же самое происходит, если я нахожусь в действии, которое показывает индикатор выполнения, и я нажимаю кнопку, которая переводит меня к другому занятию, когда я возвращаюсь, могу ли я восстановить старое занятие вместо того, чтобы запустить одно новое?

Кто-нибудь мне помогает?

Спасибо

1 Ответ

3 голосов
/ 22 апреля 2010

Проблема в том, что нажатие кнопки «Домой» сотрет весь стек активности. Это означает, что нет возможности вернуться к занятию, даже если нет уверенности, что оно все еще существует.

Если этот прогресс интересен для пользователя, который все еще выполняется, вы можете отобразить значок панели уведомлений до его завершения. Я думаю, что вы можете указать специальное намерение для нажатия на панель уведомлений и отфильтровать это намерение с вашей деятельностью. Таким образом, вы вернетесь к деятельности. Но вы по-прежнему сталкиваетесь с проблемой сохранения активности и отсутствия ссылки на фоновый поток, выполняющий эту работу.

Если ваша активность вышла из стека, вызывается метод финиша. Вы не должны пытаться повторно использовать это действие позже. Лучший способ - подумать о том, как в дальнейшем можно сохранить и восстановить все состояние действия. Чтобы восстановить ссылку на фоновый поток, выполняющий работу, вы можете создать подкласс класса application и сохранить ссылку на запущенную задачу в своем подклассе.

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