Возобновите действие вместо запуска, если оно уже существует в фоновом стеке

У меня есть Activity_1 после многих шагов, скажем

Activity_2 > Activity_3 …. в некоторой Activity_n Я изменяю некоторые данные, относящиеся к Activity_1 и вызываю их, используя

 Intent intent = new Intent(Activity_n.this, Activity_1.class); intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); startActivity(intent); 

Обновление содержимого. Но позже я могу вернуться к Activity_1 где я начал, у которого есть старые данные.

Вместо этого я хочу, чтобы начальный Activity_1 's onResume() вызывался, используя приведенный выше код. Или соответствующий флаг

FLAG_ACTIVITY_CLEAR_TOP

Рассмотрите задачу, состоящую из действий: A, B, C, D. Если D вызывает startActivity () с намерением, который разрешает компонент активности B, то C и D будут завершены, а B получит заданное намерение, в результате чего Теперь стек состоит из: A, B.

Это то, что говорят документы, но не то, что я получаю.

Solutions Collecting From Web of "Возобновите действие вместо запуска, если оно уже существует в фоновом стеке"

Вы можете добавить две строки и попробовать

 intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 

Запишите это в свой файл манифеста внутри Activity

 <activity android:name=".SettingsActivity" android:launchMode="singleInstance" android:screenOrientation="portrait" > </activity> 

Действия «singleTask» и «singleInstance» могут только начинать задание. Они всегда находятся в корне стека активности. Кроме того, устройство может удерживать только один экземпляр активности за один раз – только одна такая задача.

Вы можете использовать SingleTask или SingleInstance

«SingleTask» – система создает активность в корне новой задачи и перенаправляет ее на нее. Однако, если экземпляр действия уже существует, система перенаправляет намерение на существующий экземпляр посредством вызова его метода onNewIntent (), а не создает новый.

«SingleInstance» – То же, что и «singleTask», за исключением того, что система не запускает никаких других действий в задачу, содержащую экземпляр. Деятельность всегда является единственным и единственным ее членом.

См. Эту ссылку http://developer.android.com/guide/topics/manifest/activity-element.html

 intent.setFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT); 

Посетите: http://developer.android.com/reference/android/content/Intent.html#FLAG_ACTIVITY_REORDER_TO_FRONT

Возобновить работу из backstack, если существует, или создать новую, если нет

 android:launchMode="singleTask" 

Добавьте эту строку в AndroidManifest.xml вашего приложения и начните ее с обычного Intent .