2015-12-01 5 views
1

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

Intent i = new Intent(context, OutGoingActivity.class); 
i.putExtra("Number", incomingNumber); 
i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK|Intent.FLAG_ACTIVITY_CLEAR_TASK); 
context.startActivity(i); 

Я хочу, чтобы мой OutGoingActivity активность будет удалена из стека, когда я нажимаю кнопку назад.

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

+6

check http://stackoverflow.com/questions/14112219/android-remove-activity-from-back-stack – Ajitha

+0

finish() сделает трюк – Sree

ответ

4

Просто используйте finish(); для удаления текущей активности.

Как

Intent i = new Intent(context, OutGoingActivity.class); 
i.putExtra("Number", incomingNumber); 
i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK|Intent.FLAG_ACTIVITY_CLEAR_TASK); 
context.startActivity(i); 
// use finish() 
finish(); 

При вызове отделка() метод, OnDestroy() метод будет выполняться.

-1

Если вы хотите удалить свою активность из стека, то вы можете использовать следующий код:

android.os.Process.killProcess(android.os.Process.myPid()); 
    System.exit(1); 

    Intent mintent = new Intent(context, OutGoingActivity.class); 
    mintent .setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_SINGLE_TOP | Intent.FLAG_ACTIVITY_CLEAR_TASK); 
    context.startActivity(mintent); 
    finish(); 

Но если вы хотите, чтобы удалить все мероприятия, то вы должны попробовать ниже код:

ActivityCompat.finishAffinity(OutGoingActivity.this); 
finish(); 

Надеюсь, это поможет вам.

+0

Спасибо за ваш повтор. Нет, он не работает, я запускаю OutGoingActivity из класса приемника вещания триггерами для каждого входящего вызова. Теперь проблема заключается в том, что при первом запуске моей активности по автоответчику и при нажатии кнопки «конец» моя активность перемещается в стек, и когда я получаю входящий вызов второй раз, запускается мой запуск из стека и на этот раз появляется экран ответа в верхней части моей деятельности. Я хочу, чтобы моя деятельность всегда была видна поверх экрана ответа. –

+0

@TarunBhutani: см. Мое редактирование. – KishuDroid

+0

@TarunBhutani, тогда сделайте одно, если вы хотите удалить действие по нажатию кнопки конца, затем вызовите 'finish()' на конце кнопку. –

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