2013-02-20 2 views
0

Это тег активности я имею в своем манифесте:активность LaunchMode

<activity 
    android:name=".Activity_B" 
    android:label="@string/app_name" 
    android:launchMode="singleTop"/> 

Что я хочу сделать это:

Activity_A ---> Activity_B ---> Activity_C --- > Activity_B

Когда я перехожу из Activity_B в Activity_C, я не хочу закончить Activity_B.

Но когда я нажимаю кнопку в Activity_C, я хочу запустить Activity_B, который должен быть заново создан (данные изменены из-за какого-либо действия в Activity_C), и предыдущий экземпляр Activity_B, который находится в стопке, должен быть завершен.

android:launchMode="singleTask", который работал почти по мере необходимости, но Activity_B не воссоздается.

android:launchMode="singleTop" воссоздает Activity_B, но не удаляет его предыдущий экземпляр из backstack

android:launchMode="singleInstance" это работает так же, как singleTask

+1

Как с помощью 'startActivityForResult()' запускать C, устанавливать результат и обрабатывать его при возврате из C в B? Я предлагаю этот путь, потому что большую часть времени, меняя режим запуска, приводит к ужасным побочным эффектам ... – WarrenFaith

+0

Да. Это первая вещь, о которой я думал. Но хочу знать, могу ли я использовать LaunchMode. Если это единственное решение, дайте мне знать, чтобы я мог удалить этот пост. –

+0

Попробуйте Clear_TOP..try, что однажды .. – Pragnani

ответ

1

преобразующей комментарий в ответ

Рабочий процесс вы описываете идеальный для использования startActivityForResult(). Вы должны использовать это для вызова Activity-C из Activity-B, и когда данные были изменены, установите результат на RESULT_OK, и если пользователь вернется, вы можете изменить/обновить Activity-B.

Так оно и должно быть сделано.

+0

Согласен. Но 'Intent.FLAG_ACTIVITY_CLEAR_TOP' работал. Любое предложение по этому поводу? –

+0

Тройной контроль, если у вас есть побочные эффекты. Я бы использовал только другой режим запуска в качестве последнего средства ... – WarrenFaith

+0

Хорошо. Пойду с вашим решением. Большое спасибо. –

Смежные вопросы