Activity.finishAffinity () vs Intent.FLAG_ACTIVITY_NEW_TASK | Absicht.FLAG_ACTIVITY_CLEAR_TASK

In Android, wenn du deinen aktuellen Activity löschen und eine neue Activity starten möchtest (z. B. das Abmelden der App und das Starten eines Log in Activity ), gibt es zwei Ansätze.

Gibt es irgendwelche Vorteile gegenüber dem anderen, wenn dein Ziel-API-Level über 16 liegt?

  • Gradle schließt kein Modul wie gewünscht aus
  • Android: Color To Int Konvertierung
  • Ein Video in MediaStore einfügen
  • Verhindere das nächste Fragment (Tab) von preload mit ViewPager
  • Klicken Sie auf nicht vollständig sichtbar imageButton mit Espresso
  • Was ist "zuverlässig schreiben" in BLE?
  • 1) Finale Affinität

    Aufruf von finishAffinity() aus einer Aktivität. Activity.finishAffinity

    2) Absichtsfahnen

     Intent intent = new Intent(this, LoginActivity.class); intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK); startActivity(intent); finish(); 

    Der finishAffinity() Ansatz eignet sich für> = API 16.

    Der Intent Flags-Ansatz eignet sich für> = API 11.

    Um klar zu sein, um den aktuellen Activity zu löschen, scheinen beide Ansätze gleichermaßen zu arbeiten. Meine Frage ist, gibt es Probleme mit entweder, dass die Menschen erlebt haben und daher gibt es einen Grund, eine über die andere zu wählen?

  • So ändern Sie den Namen des Projekts in Android Studio
  • Javax * kann nicht in meine Android App importiert werden?
  • Warum ist meine benutzerdefinierte Spinnerfüllung mit meinem Paketnamen?
  • Senden von AT-Befehlen über ADB Android
  • Laden Sie alle Bilder aus der Galerie in die Anwendung in Android
  • ImageView Skalierung TOP_CROP
  • 4 Solutions collect form web for “Activity.finishAffinity () vs Intent.FLAG_ACTIVITY_NEW_TASK | Absicht.FLAG_ACTIVITY_CLEAR_TASK”

    Funktionell gibt es keinen Unterschied, aber das ausprobieren auf GenyMotion scheint es einen leichten visuellen Unterschied zu geben. Siehe Webcast: https://drive.google.com/file/d/0B8Y77sY7Y2CGRS02c3UyNjd2MGs/view?usp=sharing

    Sie müssten versuchen, dass auf einer Reihe von Geräten zu sehen, wie konsequent es ist.

    Subjektiv würde ich sagen, gehen mit der finishAffinity() weil es mehr explizit ist. Allerdings, wenn du <SDK 16 unterstützen musst, hast du keine Wahl.

    Du solltest hierfür Vorstellungsfahnen verwenden.

    Was, wenn du einen großen Stapel von Aktivitäten hast, rufst du von jedem, um sie alle zu beenden?

    Es ist viel besser und einfacher, einfach eine Absicht zu nennen.

    Hoffe das hilft.

    Probieren Sie diese Absicht.FLAG_ACTIVITY_CLEAR_TOP löscht den Stapel früherer Aktivitäten

    Wenn API> = 21, kannst du den Befehl von:

    FinishAndRemoveTask ();

    Beendet alle Aktivitäten in dieser Aufgabe und entfernt sie aus der aktuellen Aufgabenliste.

    https://developer.android.com/reference/android/app/ActivityManager.AppTask.html

    Das Android ist ein Google Android Fan-Website, Alles ├╝ber Android Phones, Android Wear, Android Dev und Android Spiele Apps und so weiter.