2014-02-14 1 views
0

Извините за мой английскийЕсли деятельность не в backstack - запустить его, но если это - перезапустить его и удалить все действия после того, как

Другими словами, что хочу я.


1)

A-B-C-D

стартE

A-B-C-D-E


2)

A-B-C-D

началоB

A-B


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

Update:

Но мне также нужно умелым вернуться к прежней деятельности (например, от D к C), нажав на кнопку Back.

3)

A-B-C-D

нажмите кнопку Back

A-B-C


ответ

0

Использование отделки() в каждом методе, где вы пытаетесь переместить вашу деятельность от одного к другому. Например.

Intent intent = new Intent(a.this, b.class); 
startActivity(intent); 
finish(); 

Поэтому, когда вы вернетесь к действию b, он автоматически завершит все остальные действия. Используйте это finish() в каждом намерении, в котором вы пытаетесь перейти от одной активности к другой.

+0

увидеть мой обновленный вопрос. Я полагаю, что таким образом я не могу вернуться с «D» на «C», нажав кнопку «Назад», не так ли? –

+0

Я тебя не понимаю, ты можешь сказать мне, что именно ты пытаешься. – InnocentKiller

0

Привет,

Вы можете использовать startActivityForResult(Intent, int) из B.
документации Here.

+0

[ЗДЕСЬ] (http://www.mediafire.com/download/wcfo8k82662uw3v/tuto.zip) является исходным кодом учебника, который я только что написал. // Это просто пример. поменяйте кнопку gui на кнопку назад по вашему желанию. он использует resultCode для управления тем, что вы хотите сделать. – Otome

0

Используется для СледующаяСтраница

Intent j = new Intent(A.this,B.class); 
    j.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP|Intent.FLAG_ACTIVITY_NO_ANIMATION); 
    startActivity(j); 

и

@Override 
     public void onBackPressed() { 

     finish(); 
    } 
Смежные вопросы