Android - Показать последнее просмотренное действие при нажатии (кнопка «Домой» -> ярлык приложения) - PullRequest
2 голосов
/ 16 июня 2011

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

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

каково решение этой проблемы?

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

Заранее спасибо.

Ответы [ 4 ]

0 голосов
/ 28 ноября 2017

Вы можете использовать startActivityForResult для замены startActivity, если хотите открыть другое действие.

0 голосов
/ 16 июня 2011

Это ожидаемое поведение.Панель запуска запустит действие с фильтром android.intent.action.MAIN.

Однако есть способы обойти это.Очень просто иметь логический флаг mRunning, который вы установите на true при запуске.Если true, то при методе onStart() вы запускаете намерение запустить второй Activity;если ложь, тогда перейдите к setContentView().

Если вам нужно вернуться к нескольким действиям, тогда выполнимым подходом является сохранение текущего действия в SharedPreferences и запуск его таким же образом.

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

РЕДАКТИРОВАТЬ : Я нашел этот дублирующий вопрос: Какзаставить приложение Android вернуться к последнему открытому действию при перезапуске? , который имеет гораздо лучший ответ, чем мой.

0 голосов
/ 10 сентября 2014

В зависимости от того, запускается ли ваше основное действие когда-либо другим действием или только значком приложения, вы можете использовать гораздо более простое решение. Если ваше основное действие запускается только значком приложения, вы можете использовать isTaskRoot () , чтобы проверить, запускается ли ваше основное действие как новый запуск приложения, или пользователь возвращается, а основной действие накладывается поверх других действий, которые вы хотите отобразить вместо этого.

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    if (! isTaskRoot()) {
        finish();
    } else {
        ...
    }
}
0 голосов
/ 16 июня 2011

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

...