Как мне "перейти" к действию, которое уже выполняется?
Вопрос новичка... Итак, у меня есть два мероприятия, Cherry и Apple, и у каждого есть кнопка, чтобы перейти к другому. Так что туда и обратно.
В классе "Вишня" я говорю это:
intent = new Intent(Cherry.this, Apple.class)
startActivity(intent);
Это означает, что это должно пойти в Apple. Есть аналогичный код в деятельности Apple.
То, что я вижу, это то, что каждый раз, когда я запускаю Apple, например, Apple, она запускает новый экземпляр, а не просто реактивирует Apple. Я просмотрел документ и не могу найти флаг или другой вызов, который бы делал то, что я хочу.
Любые советы будут оценены!
- Пито
2 ответа
Как насчет FLAG_ACTIVITY_REORDER_TO_FRONT?
FLAG_ACTIVITY_CLEAR_TOP также весьма полезна, завершая действия на заднем стеке, пока не будет достигнута целевая активность.
Чтобы было ясно, ваша деятельность может быть возобновлена, даже если вы используете флаги выше. Это произошло бы, если бы ваша деятельность была уничтожена в попытке освободить память. Другими словами, вам все равно нужно убедиться, что ваша деятельность справится с перезапуском, принимая надлежащие меры предосторожности в onPause
а также onSaveInstanceState
,
Intent.FLAG_ACTIVITY_REORDER_TO_FRONT вернет запущенную активность на передний план, если она уже выполняется, как указано здесь. Вам придется самостоятельно нажимать кнопку "Назад", чтобы не завершить текущее действие.