Ich könnte auch zeigen die hax ich bin derzeit mit meinem Problem zu lösen. Auf der "pre angemeldet" Aktivitäten, ich dies im Manifest gesetzt haben:
android:noHistory="true"
in jeder Aktivität Dann habe ich diesen Code:
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK) {
Intent intent = new Intent(MyActivity.this, ParentActivity.class);
intent.setFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION);
startActivity(intent);
return true;
}
return super.onKeyDown(keyCode, event);
}
Die FLAG_ACTIVITY_NO_ANIMATION nur auf Telefonen mit API-Ebene arbeitet 5 oder höher, aber was es tut ist, dass stattdessen auf der "offene neue Aktivität" -Animation die "zur vorherigen Aktivität zurückgehen" -Animation gespielt wird (zumindest auf dem Droiden und Nexus). Dies verhindert das verwirrende Erscheinen, dass eine neue Aktivität gestartet wird, wenn der Benutzer die Zurück-Taste drückt.
Diese Lösung ist nicht perfekt. Bei Telefonen mit einem API-Level niedriger als 5 werden die Animationen falsch. Außerdem ist es nicht super ordentlich und benötigt mehr Code als ich bevorzuge. Dennoch funktioniert es ...
Diese total für mich gearbeitet, wenn „zurück“ zu einer früheren Tätigkeit zu simulieren versuchen (das heißt, natürlich, nicht wirklich Dort). Vielen Dank! Ich wollte dies mit den Standard-Animations-IDs erreichen, aber zu meiner Überraschung sind diese nicht öffentlich verfügbar. Stelle dir das vor. – dmon
Wenn Sie tatsächlich das KeyDown verwenden, sollten Sie wahrscheinlich True zurückgeben, anstatt das Super – njzk2
True, ich habe meine Antwort korrigiert. – pgsandstrom