Управление экземплярами MapActivity - PullRequest
0 голосов
/ 18 ноября 2011

У меня есть подкласс MapActivity, и я хочу сохранить стек, но я не могу хранить несколько экземпляров MapActivity в одном процессе.Итак, я придумал 2 схемы для достижения этой цели:

  1. Передайте состояние MapActivity вместе с любыми намерениями, которые он запускает, а затем разрешите переключающимся действиям восстановить MapActivity поотправка намерения, воссоздающего деятельность.Кроме того, MapActivity будет установлен таким образом, чтобы намерения только когда-либо создавали один экземпляр этого действия за один раз.Этот подход имеет недостатки, поскольку существует несколько путей выхода из этого действия, поэтому для их поддержки необходимо изменить все их.
  2. Замените MapActivity на фиктивное действие, которое выполняет воссоздание действия в этомonResume() метод или что-то еще, а затем действия, на которые вы переключаетесь, могут блаженно не знать об этой проблеме.Проблема с этим подходом заключается в том, что я не знаю, как мне следует создать это фиктивное действие, а также вызвать намерение начать действие, на которое я хочу переключиться.

Так что мой вопрос: это здесь?лучший способ сделать это, и если нет, то как мне поступить с вариантом 2, если это возможно?

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

1 Ответ

0 голосов
/ 18 ноября 2011

Вы должны использовать атрибут SingleInstance в файле манифеста, это перенесет ранее запущенный экземпляр в верхнюю часть backstack

<activity android:launchMode="singleInstance"/>
...