Начать активность и очистить историю действий - PullRequest
6 голосов
/ 22 апреля 2010

Итак, в моем приложении огромный лабиринт действий. Что мне нужно сделать, так это то, что когда пользователь входит в систему, история действий должна быть очищена. Я не могу просто использовать finish (), когда начинаю новое действие, потому что я хочу, чтобы действия имели историю, пока пользователь не войдет в систему. Я экспериментировал с различными флагами при запуске действия, но у меня не было успеха. Есть идеи?

Приветствия

Ответы [ 2 ]

2 голосов
/ 23 апреля 2010

Я мог бы также раскрыть хак, который я сейчас использую для решения своей проблемы. В действиях «Предварительная регистрация» я указал это в манифесте:

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 анимация становится некорректной. Кроме того, это не супер аккуратно и требует больше кода, чем я предпочитаю. Тем не менее, это работает ...

1 голос
/ 22 июля 2011

вы можете использовать 65536 вместо Intent.FLAG_ACTIVITY_NO_ANIMATION для более ранних версий

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...