Ich versuche, neue Wurzelaktivität zu setzen, min SDK 16, kompilieren/Ziel-SDK 24, Test auf Nexus 6 API 23 Emulator, hier ist das Szenario:Android, setzen neue Wurzelaktivität
Aktivität A ist die Hauptaktivität, definiert als Aktion = android.intent.action.MAIN
und Kategorie = android.intent.category.LAUNCHER
beim Manifest.
Von Aktivität A ich Registrierungsaktivität bewegen (Aktivität B), wenn ich fertig bin ich Aktivität bewegen C, jetzt Aktivität C im Manifest habe ich android:clearTaskOnLaunch="true"
und android:noHistory="true"
, wenn ich bewegen sich von Aktivität B zu Aktivität C ich benutze:
Intent intent = new Intent(ActivityB.this, ActivityC.class);
// Btw I did try addFlags
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);
finish();
Das Problem: aus irgendeinem Grund, wenn ich die Zurück-Taste bei Aktivität getroffen C I Aktivität zurückkehren A, möchte ich die App zu verlassen, ich, dass nach der Registrierung (Aktivität B) endet die neue Wurzelaktivität Aktivität sein C.
Lösung:
Innerhalb Aktivität C I onBackPressed außer Kraft setzen und innerhalb des übergeordneten Methode aufrufen I:
moveTaskToBack(true);
Hinweis: nicht nennen super.onBackPressed()
, wird es zu zurück Aktivität A und verschieben Sie die Aufgabe dann zurück (moveTaskToBack). Wenn Sie die App neu starten, ruft sie A auf ctivity AonResume
und nicht onCreate
, in meinem Fall die Umleitung so innerhalb onCreate
gemacht wurde ...
Ich habe diesen Weg versucht, hopped für eleganter Weise, konnte aber keinen finden, danke (Ich werde meine Frage mit dem Code bearbeiten). –