423 Stimmen

Beende alle vorherigen Aktivitäten

Meine Anwendung hat die folgenden Ablaufbilder:

Home->screen 1->screen 2->screen 3->screen 4->screen 5

Jetzt habe ich eine gemeinsame log out Schaltfläche in jedem Bildschirm

( Home/ screen 1 / screen 2 /screen 3/ screen 4 / screen 5 )

Ich möchte, dass, wenn der Benutzer auf die Schaltfläche "Abmelden" (von einem beliebigen Bildschirm) klickt, alle Bildschirme beendet werden und ein neuer Bildschirm Log in wird geöffnet.

Ich habe fast alle ausprobiert FLAG_ACTIVITY um dies zu erreichen. Ich gehe auch durch einige Antworten in Stackoverflow, aber nicht in der Lage, das Problem zu lösen. Meine Anwendung ist auf Android 1.6 so nicht in der Lage zu verwenden FLAG_ACTIVITY_CLEAR_TASK

Gibt es eine Möglichkeit, das Problem zu lösen?

8voto

Ich habe dasselbe Problem Sie können verwenden IntentCompat so:

import android.support.v4.content.IntentCompat;
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK |IntentCompat.FLAG_ACTIVITY_CLEAR_TASK);

Dieser Code funktioniert bei mir.

Android-Api 17

6voto

Kamal Bunkar Punkte 888

Für API >= 15 bis API 23 einfache Lösung.

 Intent nextScreen = new Intent(currentActivity.this, MainActivity.class);
 nextScreen.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK | IntentCompat.FLAG_ACTIVITY_CLEAR_TASK);
 startActivity(nextScreen);
 ActivityCompat.finishAffinity(currentActivity.this);

6voto

Plamen Nikolov Punkte 4147

Anmelden->Home->Bildschirm 1->Bildschirm 2->Bildschirm 3->Bildschirm 4->Bildschirm 5

auf Bildschirm 4 (oder einem anderen) ->

StartActivity(Log in)con    FLAG\_ACTIVITY\_CLEAR\_TOP

5voto

ngesh Punkte 13251

Wenn Sie Folgendes verwenden startActivityForResult() in Ihren vorherigen Aktivitäten, überschreiben Sie einfach OnActivityResult() und rufen Sie die finish(); Methode darin in allen Aktivitäten... Dies wird die Arbeit erledigen...

3voto

nikki Punkte 3158

Wenn der Benutzer auf die Abmeldeschaltfläche klickt, schreiben Sie den folgenden Code:

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

Und auch wenn Sie nach der Anmeldung eine neue Aktivität aufrufen, sollten Sie nicht finish() verwenden;

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X