2012-05-02 2 views
0

Я разрабатываю приложение чата с более чем 8 действиями. Но моя главная проблема заключается в двух действиях моего приложения. Подумайте о whatsapp, у него есть основная активность (список контактов) и активность чата, и всегда, приложение whatsapp поддерживает приложение запуска состояния стека из списка приложений или долгое нажатие HOME. Также, если приложение начинает с уведомления, никогда не появляется дублируемая деятельность в стеке. Я хотел бы скопировать это поведение в мое приложение, но я пробовал все возможности и всегда это случай, когда действие не уничтожается, дублируются действия в стеке, все те проблемы, которые пытаются поддерживать состояние стека при возврате в приложение.Поддерживать активность Android Stack с уведомлениями

Кто-нибудь знает, как его реализовать?

  • активность A-> Список контактов
  • активность B-> Chat Activity

Каковы параметры в манифесте для каждого вида деятельности?

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

ответ

0

Я не совсем уверен, что вы ищете, но вот две вещи, которые могут помочь:

  • android:noHistory: установите для этого атрибута значение true в манифесте для действий, которые не должны оставлять след в стеке действий. Поэтому, если вы перейдете ActivityA -> ActivityB (noHistory = true) -> ActivityC, а пользователь нажмет кнопку «Назад», вы вернетесь к ActivityA, потому что ActivityB уже выгружен.
  • Activity.finish(): активность, которую это вызвало при выходе. Вызываются обычные обратные вызовы (onStop(), onDestroy()). Если вы хотите предотвратить дублирование действий, это может помочь вызвать это в onPause() операции, которую вы не хотите дублировать.

Если те не достаточно, то есть намного больше деталей в документации «обратно» стека:

https://developer.android.com/guide/topics/fundamentals/tasks-and-back-stack.html

+0

Проблема в том, что уведомление Намерение запускает активность А в качестве новой задачи с дополнительными параметрами , потому что, когда загружается активность A, получает намеренные параметры и запускает ActivityB, поэтому, когда я закончу операцию B, нажав кнопку «Назад», она переходит в «Активность A», но если в этот момент я нажму домой, а затем вернусь в свое приложение long pressin home, он снова запускает Activity A с параметрами намерения, запускающими Activity B, так что я снова в активности B. Проблема появляется, когда я запустил приложение из пусковой установки, и я нажимаю на него, после чего, если я нахожу нажатие, возникают проблемы с уведомлением. – Igor