Таким образом, у меня есть огромный лабиринт операций в моем приложении. То, что я должен сделать, то, что, когда пользователь входит в систему в систему, история действия должна быть очищена. Я не могу только использовать конец (), когда я запускаю новое действие, потому что я хочу, чтобы операции имели историю, пока пользователь не входит в систему. У меня есть experimentet с различными флагами при запуске действия, но я не имел никакого успеха. Какие-либо идеи?
Удачи,
С таким же успехом я могу раскрыть хакер, который сейчас использую для решения моей проблемы. Для действий с предварительным входом в систему я установил это в манифесте:
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 анимация становится некорректной. Кроме того, это не очень аккуратно и требует большего количества кода, чем я предпочитаю. Тем не менее, это работает ...