364 Stimmen

Android: Den hinteren Stapel löschen

In Android habe ich einige Aktivitäten, sagen wir A, B, C.

In A verwende ich diesen Code, um B zu öffnen:

Intent intent = new Intent(this, B.class);
startActivity(intent);

In B verwende ich diesen Code, um C zu öffnen:

Intent intent = new Intent(this, C.class);
startActivity(intent);

Wenn der Benutzer auf eine Schaltfläche in C tippt, möchte ich zu A zurückkehren und den hinteren Stapel löschen (sowohl B als auch C schließen). Also, wenn der Benutzer die Zurück-Taste B und C wird nicht angezeigt, ich habe versucht, die folgenden:

Intent intent = new Intent(this, A.class);
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 
startActivity(intent);

Aber B und C werden immer noch angezeigt, wenn ich die Zurück-Taste benutze, wenn ich wieder in Aktivität A bin.

0voto

Pankaj Talaviya Punkte 3010

Verwenden Sie die setFlags()-Methode, um die Rückseite zu leeren und alle Aktivitäten zu schließen und zu starten yourActvity

Intent intent = new Intent(getApplicationContext(), yourActivity.class);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK);
startActivity(intent);

0voto

blackjack Punkte 91

Im Manifest

android:launchMode="singleTask"

y

intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(intent);

0voto

Renjith JR Punkte 159

Entweder fügen Sie dies zu Ihrem Activity B y Activity C

android:noHistory="true"

ou Override onBackPressed Funktion zur Vermeidung von Gegendruck mit einer return .

@Override
public void onBackPressed() {
   return;
}

0voto

Arun Sharma Punkte 179

Fügen Sie NO History Flag in der Absicht hinzu.

Starten Sie in Aktivität B die Aktivität C wie folgt >>>>>>

Intent intent = new Intent(this, C.class);
intent.setFlags(intent.getFlags() | Intent.FLAG_ACTIVITY_NO_HISTORY); 
startActivity(intent);
finish();

0voto

Swap-IOS-Android Punkte 4313

I genannt activity_name.this.finish() nach dem Start eines neuen Vorhabens und es hat bei mir funktioniert.

I tried "FLAG_ACTIVITY_CLEAR_TOP" and "FLAG_ACTIVITY_NEW_TASK"

Aber bei mir klappt es nicht... Ich schlage diese Lösung nicht vor, aber wenn das Setzen der Flagge bei Ihnen nicht funktioniert, können Sie dies versuchen.

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