Android Activity Снесите восстановить - PullRequest
0 голосов
/ 28 июня 2011

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

Чтобы воссоздать, я переназначаю свою корневую активность. И в рамках его первого запуска у меня есть второй вид деятельности. В рамках моей второй деятельности onStart я создаю свою третью активность. Это работает, но проблема, с которой я столкнулся, заключается в том, что при просмотре экрана вы видите каждое из трех созданных действий и анимируете их в следующем действии. Я хочу сделать эту перестройку невидимой для пользователя и скрыть эти переходы. Кто-нибудь знает, как этого добиться?

1 Ответ

1 голос
/ 28 июня 2011

Android уже позаботится о перезапуске действий при изменении конфигурации.

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

Вещи просто не предназначены для такой работы.Это не так, как все остальные приложения, которые вы запускаете на Android, будут работать, поэтому, если вы глубоко чувствуете, что это то, что вам нужно сделать, то будет полезно объяснить, почему это так, чтобы мы могли предложить вам лучший способ выполнитьто, что ты хочешь.:) Например, если у вас есть несколько видов деятельности, состояние которых фундаментально связано друг с другом, чтобы потребовать этого, попробуйте вместо этого использовать фрагменты (или очистить их).

С другой стороны, если у вас просто есть какой-то внутреннийконцепция конфигурации и желание перезапустить свою деятельность (например, для переключения между темами), для этого есть API, но он был добавлен только в Android 3.0: http://developer.android.com/reference/android/app/Activity.html#recreate()

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