2 Stimmen

Android - Anzeigen der zuletzt angezeigten Aktivität beim Drücken der (Start-Taste --> App-Verknüpfung)

Ich kam, um die ewige Frage zu stellen, die bisher keine Lösung gefunden haben, ich habe im Internet dasselbe Problem gesucht, aber keine endgültige Lösung für dieses Problem gefunden.

Wenn ich 2 Aktivitäten geöffnet habe und dann die 'Home-Taste' drücke und anschließend die Verknüpfung für meine Anwendung drücke, zeigt sie mir wieder die erste Aktivität (die Startaktivität) an, und um zur angezeigten Aktivität zurückzukehren, muss ich die Zurück-Taste drücken.

Was ist die Lösung für dieses Problem?

Ich möchte, dass meine Anwendungsverknüpfung gedrückt wird (nachdem ich meine Anwendung verlassen habe, indem ich die Home-Taste gedrückt habe), mir die zuletzt angezeigte Aktivität zeigt, anstatt mir die Startaktivität (Aktivität Launcher) anzuzeigen.

Vielen Dank im Voraus.

0voto

ahodder Punkte 11208

Ihre Anwendung läuft immer noch im Hintergrund, wenn Sie die Home-Taste drücken. finish() die Aktivität, wenn Sie zurückspringen möchten.

0voto

Aleadam Punkte 39803

Das ist das erwartete Verhalten. Der Startbildschirm startet die Aktivität mit dem Filter android.intent.action.MAIN.

Es gibt jedoch Möglichkeiten, dies zu umgehen. Eine sehr einfache Möglichkeit besteht darin, einen booleschen Wert mRunning zu haben, den Sie beim Start auf true setzen. Wenn true, starten Sie im onStart()-Methode einen Intent, um Ihre zweite Aktivität zu starten; wenn falsch, dann fahren Sie mit setContentView() fort.

Wenn Sie mehrere Aktivitäten haben, zu denen Sie zurückkehren möchten, ist ein praktikabler Ansatz, die aktuelle Aktivität in SharedPreferences zu speichern und sie auf die gleiche Weise zu starten.

Alternativ kann Ihre Hauptaktivität nur eine Einstiegsaktivität sein, deren einzige Aufgabe darin besteht, die zuletzt verwendete Aktivität zu starten.

BEARBEITEN: Ich habe diese doppelte Frage gefunden: Wie kann eine Android-App zur zuletzt geöffneten Aktivität zurückkehren, wenn sie erneut gestartet wird?, die eine viel bessere Antwort als meine hat.

0voto

ErlVolton Punkte 6574

Je nachdem, ob Ihre Hauptaktivität von einer anderen Aktivität gestartet wird oder nur über das Anwendungssymbol, können Sie eine viel einfachere Lösung verwenden. Wenn Ihre Hauptaktivität nur über das Anwendungssymbol gestartet wird, können Sie isTaskRoot() verwenden, um zu überprüfen, ob Ihre Hauptaktivität als Neustart der Anwendung gestartet wird oder ob der Benutzer zurückkehrt und die Hauptaktivität über anderen Aktivitäten liegt, die Sie stattdessen anzeigen möchten.

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    if (! isTaskRoot()) {
        finish();
    } else {
        ...
    }
}

0voto

BlackMask Punkte 1

Sie können startActivityForResult verwenden, um startActivity zu ersetzen, wenn Sie eine andere Aktivität öffnen möchten.

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