У меня есть подкласс MapActivity
, и я хочу сохранить стек, но я не могу хранить несколько экземпляров MapActivity
в одном процессе.Итак, я придумал 2 схемы для достижения этой цели:
- Передайте состояние
MapActivity
вместе с любыми намерениями, которые он запускает, а затем разрешите переключающимся действиям восстановить MapActivity
поотправка намерения, воссоздающего деятельность.Кроме того, MapActivity
будет установлен таким образом, чтобы намерения только когда-либо создавали один экземпляр этого действия за один раз.Этот подход имеет недостатки, поскольку существует несколько путей выхода из этого действия, поэтому для их поддержки необходимо изменить все их. - Замените
MapActivity
на фиктивное действие, которое выполняет воссоздание действия в этомonResume()
метод или что-то еще, а затем действия, на которые вы переключаетесь, могут блаженно не знать об этой проблеме.Проблема с этим подходом заключается в том, что я не знаю, как мне следует создать это фиктивное действие, а также вызвать намерение начать действие, на которое я хочу переключиться.
Так что мой вопрос: это здесь?лучший способ сделать это, и если нет, то как мне поступить с вариантом 2, если это возможно?
РЕДАКТИРОВАТЬ: Один из возможных способов сделать вариант 2 состоит в том, чтобы сделать макет активности путевой точкой, которая начинаетсяцелевая активность для вас в этом onCreate()
.Но тогда нужно просто быть осторожным, чтобы в случае повторного вызова onCreate()
из-за того, что действие восстанавливается, он не запускает целевое действие снова.Это можно сделать, проверив, что savedInstanceState
равно null
.