2013-04-25 2 views
0

Just, Как я могу закрыть конкретную деятельность моего приложения?Закрыть конкретную активность android

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

A1> B1> C1

И в С1 Я могу пойти в деятельность снова с новым Params так, когда я открою новый B (B2), I хотите закрыть более старые действия: A1, B1, C1.

Будучи новый результат:

A2> B2

Где я могу вернуться к А2 после В2, и завершить приложение от A2.

+0

Вы должны вызвать метод отделки в своей существующей деятельности сразу после запуска нового действия. – ararog

+0

Вы приближаетесь к этой проблеме неправильно. Lookup android 'launchMode'. – Phil

ответ

3

У вас есть два способа сделать это:

Вы можете использовать декларацию деятельности, таких как single top. Или вы можете передавать данные между действиями, используя start for result. Затем на onActivityResult просто позвоните finish();

+0

Да, я подумал об этом, и я проверял другое решение, спасибо –

0

Это должно работать для вас:

Intent i = new Intent(C.this, A.class); 
i.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_CLEAR_TASK); 
startActivity(i); 

FLAG_ACTIVITY_CLEAR_TOP очистит все остальные Activities из стека. FLAG_ACTIVITY_CLEAR_TASK

Этот флаг вызовет любую существующую задачу, которая будет связана с активностью, подлежащей очистке, до начала действия.

Intent Flags

Примечание, как указано на @Dalmas FLAG_ACTIVITY_CLEAR_TASK работает только для API> = 11

+0

Обратите внимание, что 'FLAG_ACTIVITY_CLEAR_TASK' работает только для API> = 11. – Dalmas

+0

@Dalmas Хорошая точка! Спасибо, я отредактировал мой ответ – codeMagic

+0

Это не работает, Intent.FLAG_ACTIVITY_CLEAR_TOP только закрывает A2, и я разрабатываю API-интерфейс API 8, поэтому попробую другим способом. Спасибо, в любом случае! –

Смежные вопросы