Android Activity Flow На старте - PullRequest
       0

Android Activity Flow На старте

0 голосов
/ 01 ноября 2011

Допустим, у меня есть несколько видов деятельности A, B и C.

Действие A запускается при запуске приложения. Предполагается, что в фоновом режиме выполняется асинхронная задача для автоматического входа на сервер на базе imei, который также запускает службу. Если вход не выполнен, действие A будет иметь кнопку обновления, чтобы пользователь мог повторно запустить асинхронную задачу. После входа в систему действие завершается с помощью finish () и переходит к B, затем к C.

Существует 2 проблемы.

  1. В любой момент времени, если пользователь должен был повторно запустить приложение через меню приложения, снова будет выполняться действие A, что приведет к ненужному входу в систему и запуску некоторой фоновой службы.

  2. При действии C, когда я нажимаю Назад, он возвращается к B, а затем обратно, что возвращает в главное меню, что правильно. однако, когда я нажимаю кнопку «Домой» и выбираю приложение, приложение снова запускает действие A.

Ответы [ 3 ]

0 голосов
/ 01 ноября 2011

Я понимаю одну вещь из вашего приложения ... приложение переходит с экрана A (Вход в систему) -> на экран B, а затем на экран C ... Приложение не может распространяться непосредственно на экран C.

сейчас ... в самом начале приложения вы можете хранить сохраненные данные, чтобы проверить, выполнили ли вы вход в систему и были ли завершены требуемые фоновые потоки. как только это будет проверено ... вы можете вручную перенаправить с новым намерением на экран B .... Я думаю, что это отвечает на первый пункт.

секунда ... Я думаю, что это нормальное поведение для перезапуска приложения, если вы хотите сохранить состояние приложения в методах onpause и onStop, чтобы приложение запускалось с того места, где вы остановились.

0 голосов
/ 02 ноября 2011

У второй проблемы есть верное решение.Добавьте этот тег в ur launcher активность ::

      android:alwaysRetainTaskState="true"

Cheers .... !!!

0 голосов
/ 01 ноября 2011

в вашем файле манифеста, установите активность запуска как "одно задание"

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