Хотите вернуться к последнему действию после нажатия значка запуска для моего приложения - PullRequest
3 голосов
/ 14 марта 2012

Предположим, у меня есть действие A, которое запускает действие B и убивает себя. Теперь я нажимаю кнопку «Домой» (или покидаю приложение другим способом) (вызывая onPause-> onStop для действия B) и снова щелкаю значок приложения на панели запуска. Что происходит, так это то, что действие A запускается снова (конечно, потому что я указал этот фильтр-намерение в манифесте XML). Есть ли простой способ вернуться к занятию B без повторного запуска задания A? Я в основном хочу получить доступ к onStart-> onResume в действии B при повторном открытии приложения.

Мой фильтр намерений выглядит так:

<intent-filter>
    <action android:name="android.intent.action.MAIN" />
    <category android:name="android.intent.category.LAUNCHER" />
</intent-filter>

Ответы [ 2 ]

1 голос
/ 14 марта 2012

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

Когда B делает паузу или останавливается, запомните его (в файле, дБ и т. Д.).что-то вроде экрана приветствия, но с прозрачным представлением, прочитайте запись и запустите записанную активность.

Другое решение, но не уверен, что оно работает.

Запись широковещательного приемника с помощью средства запускафильтр, а затем запустите записанную активность.

1 голос
/ 14 марта 2012

Одной из стратегий здесь может быть сохранение SharedPreference, помеченное, когда вы хотите перейти прямо к B. В этом документе для Android говорится об использовании SharedPreferences с некоторыми примерами кода.

По существу,когда вы хотите вернуться прямо к B, вы создаете общие предпочтения, указывающие на это.Затем, когда A перезапускается (скажем, потому что он был убит ОС, как обсуждалось в комментариях к вопросу), вместо того, чтобы сразу устанавливать соответствующее представление и т. Д., Вы сначала проверяете флаг.Если флаг включен, вы начинаете B. Здесь есть некоторая путаница, но я думаю, что она может быть обработана очень чисто, я думаю.

...