2014-04-14 27 views
5

Moja przepływu Zastosowanie:Intent.FLAG_ACTIVITY_CLEAR_TOP nie działa

Login-> profile-> UpdateProfile-> ChangePass

Wszystkie moje activitys rozciąga FragmentActivity

Po naciśnięciu przycisku w ChangePass Aktywny I zadzwoń pod ten kod:

Intent intent=new Intent(getApplicationContext(),LoginActivity.class); 
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 
startActivity(intent); 

Tak więc powinien rozpocząć działanie od logowania się i po ponownym naciśnięciu przycisku bezczynności następnie Zgłoszenie powinno zamknąć ... ale kiedy nacisnąć przycisk wstecz od logowania Aktywny przepływ jest:

ChangePass-> UpdateProfile-> profil-> Zaloguj

Dlaczego Plecy stos nie jest wyczyszczone?

Uwaga:

mam zastosować wszystkie te rozwiązania, ale nie działa: 1.link 2.link

+0

dodać flagę: FLAG_ACTIVITY_NEW_TASK – DroidBender

+0

To powinno działać. możesz opublikować swój manifest – Libin

+0

Z jakiego Androida korzystasz? Jeśli masz Androida 5.0+ (Lollipop), to sprawdź to http://stackoverflow.com/questions/28944455/flag-activity-clear-top-not-working-on-5-0-devices – anivaler

Odpowiedz

2

Spróbuj następujący sposób -

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

Więcej szczegółów alternatywnych i sprawdzić intent-flag-activity-clear-top-doesn't-deletes-the-activity-stack. Post wyjaśnia doskonale kod wyniku i powyższe rozwiązanie.

0

Zamiast zastępować stare flagi, spróbuj dodać jeden. Setflag zastępuje flagę potęgi.

Spróbuj użyć addFlags.

1

Bardzo późna odpowiedź.
Ale może pomóc innym, tak jak dla mnie.

Deweloperzy czasami mylić FLAG_ACTIVITY_CLEAR_TASK z FLAG_ACTIVITY_CLEAR_TOP

Użyj tego zamiast
intentRestart.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK | Intent.FLAG_ACTIVITY_NEW_TASK);