У меня есть 3 действия A, B и C.
Я динамически увеличиваю активность B по нажатию кнопки, и пользователь может добавлять столько просмотров, сколько ему нравится.
Операция такая:
Пользователь видит «Действие A» сначала вводит свои данные и нажимает кнопку «Сохранить», и я перевожу его в «Действие B», где он добавляет определенные поля столько раз, сколько ему нравится, и когда он снова нажимает «Сохранить», я перевожу его в «Действие C».
Теперь, когда я нахожусь в A и перехожу к B, добавляю несколько представлений и ввожу текст в TextViews, а затем нажимаю «Сохранить» и иду к C. Из C, если я нажимаю в ответ, я вижу B нетронутым вместе со всеми раздутыми представлениями и введенным текстом, очевидно, потому что это сохраняется в Back Stack, но если я перехожу от B к A, нажимая назад, а затем возвращаюсь к B, все просмотры исчезают, потому что он удаляется из Back Stack.
Я хотел знать, можно ли хранить только один экземпляр B в BackStack и вообще не убивать его, когда пользователь наносит ответный удар? Я переопределил ключ возврата, но безрезультатно, потому что активность все равно убита, некоторые люди предложили мне сохранить все представления и данные из него в Parcelable ArrayList и снова сгенерировать их в onCreate, но это не выглядит возможным для меня, как я думаю мы все равно можем сохранить его в BackStack.
Я наткнулся на это руководство у разработчиков Android http://developer.android.com/guide/topics/fundamentals/tasks-and-back-stack.html, в котором говорится об этих атрибутах активности.
android:taskAffinity
android:launchMode
android:allowTaskReparenting
android:clearTaskOnLaunch
android:alwaysRetainTaskState
android:finishOnTaskLaunch
android:singleTask
android:singleInstance
Но я не знаю, как их использовать.
Кто-нибудь пробовал это еще? Если это так, пожалуйста, помогите мне собрать кусочки вместе.