374 Stimmen

Löschen Sie den gesamten Verlaufsstapel und starten Sie eine neue Aktivität auf Android

Ist es möglich, eine Aktivität auf dem Stapel zu starten und den gesamten Verlauf davor zu löschen?

Die Situation

Ich habe einen Aktivitätsstapel, der entweder A->B->C oder B->C umfasst (Bildschirm A wählt den Token des Benutzers aus, aber viele Benutzer haben nur einen einzigen Token).

In Bildschirm C kann der Benutzer Mai eine Aktion durchführen, durch die Bildschirm B ungültig wird, so dass die Anwendung sie zu Bildschirm A bringen will, unabhängig davon, ob dieser bereits auf dem Stapel liegt. Bildschirm A sollte dann das einzige Element auf dem Stapel in meiner Anwendung sein.

Anmerkungen

Es gibt noch viele andere ähnliche Fragen, aber ich habe nichts gefunden, was genau diese Frage beantwortet. Ich habe versucht, anzurufen getParent().finish() - führt dies immer zu einer Null-Zeiger-Ausnahme. FLAG_ACTIVITY_CLEAR_TOP funktioniert nur, wenn sich die Aktivität bereits auf dem Stapel befindet.

2voto

Neeraj Gupta Punkte 41
Intent i = new Intent(MainPoliticalLogin.this, MainActivity.class);
i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK);
startActivity(i);

-1voto

RajeshkumarG Punkte 11

Manchmal kann es vorkommen, dass Ihr Android-Emulator keine Verbindung zum eclipse DDMS-Tool herstellen kann und Sie aufgefordert werden, adb manuell zu starten. In diesem Fall können Sie adb über die Eingabeaufforderung starten oder stoppen.

-2voto

Tauseef Punkte 117

Ich fand zu einfach hack nur tun dies neues Element hinzufügen in AndroidManifest wie:-

<activity android:name=".activityName"
          android:label="@string/app_name"
          android:noHistory="true"/>

el android:noHistory wird Ihre unerwünschten Aktivitäten von Stack löschen.

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