2015-03-17 2 views
1

Я разрабатываю небольшое приложение для Android, в котором у меня есть 3 действия: A1, A2, A3. Я могу вернуться с A2 до A1, но когда я запустил A3, а затем, если пользователь нажмет кнопку «Назад», я хочу закрыть все предыдущие окна. Я пробовал это следующим образом:Android Intent.FLAG_ACTIVITY_CLEAR_TOP или Intent.FLAG_ACTIVITY_NEW_TASK не работает

Intent intent = new Intent(LoginActivity.this, DashboardActivity.class); 
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP |Intent.FLAG_ACTIVITY_NEW_TASK); 
intent.addFlags(Intent.FLAG_ACTIVITY_NO_HISTORY); 
startActivity(intent); 

но это не работает для меня. Я использую экшен-бар activity.I пытался очистить задачу:

intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | IntentCompat.FLAG_ACTIVITY_CLEAR_TASK); 

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

+1

где вы его тестируете? – Blackbelt

ответ

0

попробовать этот

Intent intent = new Intent(LoginActivity.this, DashboardActivity.class); 
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK); 
startActivity(intent); 
+0

Ясная задача, работающая для меня. Дело только в том, что при запуске он начинает работать с белым экраном. Это правильное поведение? – nilkash

0

Используйте этот

Intent intent = new Intent(LoginActivity.this, DashboardActivity.class); 
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_NEW_TASK); 
startActivity(intent); 
finish(); // call this to finish the current activity 
0

Вы ОБЪЯВЛЕННЫХ android:launchMode="singleTop" для всех видов деятельности в манифесте? Кроме того, возвестит MainActivity:

<activity android:name=".MyActivity" android:launchMode="singleTop" ... /> 

Обычно такое поведение происходит, когда мы не заявляем в манифесте в launchMode. Хотя вы используете Intent.[MODE], вам понадобится этот атрибут. См. Это documentation для получения дополнительной информации о launchMode.

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