Как стереть стек активности в Android?

Я создаю приложение для заказа пиццы. Когда пользователь добавляет товар в свою корзину, ему предоставляется возможность перейти к категориям товаров и просмотреть/добавить новые товары. Что я хочу сделать, так это:

Главный экран > Список категорий (первое появление) > Пицца в этой категории > Сведения о пицце > Корзина > Список категорий (второе появление).

Мне нужно стереть стек действий, чтобы после добавления элемента в корзину, если пользователь коснется кнопки «Назад», он/она должен вернуться в список категорий (первое появление). «Пиццы в этой категории > Сведения о пицце > Корзина» необходимо удалить. Если он/она коснется еще раз, он/она должен быть на главном экране.

Как я могу это сделать?


person Emre    schedule 07.06.2012    source источник


Ответы (1)


Вы можете попытаться передать последнюю активность с помощью intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
или
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);

см.
http://developer.android.com/reference/android/content/Intent.html#FLAG_ACTIVITY_CLEAR_TOP

Затем вы очищаете стек действий под своим новым действием.


Кроме того, вы можете попытаться переопределить обратное событие:

@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
    if (keyCode == KeyEvent.KEYCODE_BACK) {
        moveTaskToBack(true);
        return true;
    }
    return super.onKeyDown(keyCode, event);
}

см. также Android: очистить стек активности или Как очистить стек действий Android?

person Thkru    schedule 07.06.2012
comment
Именно то, что мне было нужно. Спасибо. - person Emre; 07.06.2012
comment
StackOverflow заставил меня ждать 4 минуты. Извините за задержку :) - person Emre; 07.06.2012