równie dobrze mogę ujawnić Hax Obecnie używam rozwiązać mój problem. Na „pre-rejestrowane w” działaniach, mam ustawić to w manifeście:
android:noHistory="true"
Następnie w każdej działalności Mam ten kod:
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);
}
FLAG_ACTIVITY_NO_ANIMATION działa tylko na telefonach z poziomu API 5 lub więcej, ale zamiast tego na "otwartej nowej aktywności" -animacja gra się "wracając do poprzedniej aktywności" (co najmniej na droidie i nexusie). Zapobiega to mylącemu pojawieniu się nowej aktywności, gdy użytkownik naciśnie przycisk Wstecz.
To rozwiązanie nie jest idealne. Na telefonach o poziomie API niższym niż 5 animacje stają się niepoprawne. Poza tym nie jest super i wymaga więcej kodu niż ja wolę. Mimo to, to działa ...
Ten całkowicie pracował dla mnie, gdy próbuje symulować „wraca” do poprzedniej pracy (to jest, oczywiście, nie do końca tam). Dzięki! Chciałem to zrobić przy użyciu domyślnych ID animacji, ale ku mojemu zdziwieniu nie są one publicznie dostępne. Domyśl. – dmon
jeśli faktycznie używasz klucza, powinieneś raczej zwrócić wartość true zamiast wywołać super – njzk2
Prawda, poprawiłem odpowiedź. – pgsandstrom