Я мог бы также раскрыть хак, который я сейчас использую для решения своей проблемы. В действиях «Предварительная регистрация» я указал это в манифесте:
android:noHistory="true"
Тогда в каждом упражнении у меня есть этот код:
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 работает только на телефонах с уровнем API 5 или выше, но при этом вместо анимации «открыть новое действие» воспроизводится анимация «возврата к предыдущему виду деятельности» (по крайней мере на дроид и связь). Это предотвращает запутанное появление нового действия, когда пользователь нажимает кнопку возврата.
Это решение не идеально. На телефонах с уровнем API ниже 5 анимация становится некорректной. Кроме того, это не супер аккуратно и требует больше кода, чем я предпочитаю. Тем не менее, это работает ...