3

Я пытаюсь вернуться к активности, находящейся в стеке действий, удаляя все действия между текущим и целевым действием.Intent.FLAG_ACTIVITY_CLEAR_TOP уничтожает целевую деятельность. Как избежать?

Я прочтенный, что это путь для достижения этой цели:

Intent i = new Intent(SettingsActivity.this, MainActivity.class); 
i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 
startActivity(i); 

Якобы он завершит все действия между током и назначением, , но и разрушает активность назначения.

Это не то поведение, которое я искал. Мне нужно избегать уничтожения цели назначения. Он должен возобновить себя, а не уничтожаться и воссоздаваться.

Как это можно достичь?

ответ

3

Вам нужно добавить FLAG_ACTIVITY_SINGLE_TOP так:

Intent i = new Intent(SettingsActivity.this, MainActivity.class); 
i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_SINGLE_TOP); 
startActivity(i); 

При использовании FLAG_ACTIVITY_CLEAR_TOP, Android удаляет все виды деятельности на верхней части мишени Activity включая существующий экземпляр целевого Activity, а затем создает новый экземпляр цель Activity. Если вы хотите использовать существующий экземпляр целевого объекта Activity, вам также необходимо указать FLAG_ACTIVITY_SINGLE_TOP.

+0

похоже работа. огромное спасибо – NullPointerException

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