2013-04-25 2 views
0

Я там, я уже прочитал некоторые вопросы об этом, но никто не помог мне, потому что то, что я хочу сделать, совсем другое.Erase Activities from Stack

У меня есть эта деятельность, например:

A-> B-> C-> D-> Е

На DI иметь кнопку, чтобы перейти к E, и когда я войти активность E, I хотите стереть все действия между A и E. Итак, если я нажму кнопку назад на E, я вернусь к активности A.

Я знаю! Я мог бы сделать это переопределением метода onKeyDown ... и просто переместить пользователя в действие A, но все действия будут храниться в стеке, я хочу их стереть! Для производительности и лучшего управления, я просто не нуждаюсь в них больше, понимаю?

Спасибо за много!

+1

Когда в B, C или D, если пользователь возвращается, вы хотите вернуться к предыдущему действию? –

+0

Да, я хочу, вот почему я не могу использовать android: noHistory = "true" tag – TiagoM

+0

Вы начинаете E с D с флагом FLAG_ACTIVITY_CLEAR_TOP? Если да, то почему эта работа выходит за рамки меня. Какой API является вашей минимальной целью? –

ответ

2

Вы должны использовать специальный флаг намерения (Intent.FLAG_ACTIVITY_CLEAR_TOP), только начиная необходимую операцию.

+0

Я испытаю его, спасибо;) – TiagoM

+0

Работал как шарм;) – TiagoM

+1

Не совсем :) Это может вызвать долгое ожидание в начале целевой деятельности, которая зависит от количества действий, которые нужно очистить. На данный момент ваша деятельность может быть легкой, и, возможно, вы также используете некоторое мощное устройство, чтобы вы не заметили паузу. – Stan

1

В манифесте вы можете написать

<activity 
     android:name=".MyActivity" 
     android:noHistory="true"> 

Для каждого вида деятельности, который вы хотите из стека.

+0

Не знал об этом, спасибо! – TiagoM