Как мне «перейти» к действию, которое уже выполняется? - PullRequest
7 голосов
/ 27 марта 2011

Вопрос новичка ... Итак, у меня есть два вида деятельности, Cherry и Apple, и у каждого есть кнопка для перехода к другому. Итак, туда и обратно.

В классе "Вишня" я говорю это:

intent = new Intent(Cherry.this, Apple.class)
startActivity(intent);

Это означает, что это должно пойти в Apple. Аналогичный код в деятельности Apple.

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

Любые советы будут оценены!

- Пито

Ответы [ 2 ]

11 голосов
/ 27 марта 2011

А как насчет FLAG_ACTIVITY_REORDER_TO_FRONT ?

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

Для ясности, ваша активность может быть возобновлена, даже если вы используете флаги выше.Это произошло бы, если бы ваша деятельность была уничтожена в попытке освободить память.Другими словами, вам все равно нужно убедиться, что ваша деятельность справится с перезапуском, принимая надлежащие меры предосторожности в onPause и onSaveInstanceState.

3 голосов
/ 27 марта 2011

Intent.FLAG_ACTIVITY_REORDER_TO_FRONT вернет запущенное действие на фронт, если оно уже выполняется, как указано здесь . Вам придется самостоятельно нажимать кнопку «Назад», чтобы не завершить текущее действие.

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