Когда вы нажимаете кнопку «назад», активность вызывается из стека и уничтожается. Предыдущее действие в стеке фокусируется.
Предположим, что у вас есть 3 мероприятия. A, B и C. Переходите к C. A-B-c. С C вы можете перейти к A, используя приведенный ниже код.
Вы можете отменить нажатие кнопки «Назад» и вызвать finish()
.
Если вы находитесь в действии A, вы можете просто нажать кнопку «Назад» для выхода.
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK) {
onBackPressed();
}
return super.onKeyDown(keyCode, event);
}
public void onBackPressed() {
Intent myIntent = new Intent(C.this, A.class);
myIntent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);//clear the backstack
startActivity(myIntent);
finish();
return;
}
Edit:
Некоторые разработчики и некоторые люди на StackOverflow считают, что кнопка спина должна по крайней мере вернуться к прежней деятельности. Он должен быть таким. Таким образом, переопределение функциональности по умолчанию и очистка стека не могут быть хорошей идеей.
Вы можете также рассмотреть возможность использования панели навигации
http://developer.android.com/design/patterns/navigation.html
Также проверьте этот
Is quitting an application frowned upon?
Override onBackPressed, а затем завершает текущую деятельность. – Pragnani
@Прагнани, пожалуйста, дайте мне один образец? – prabu
Я думал, что андроид делает это по умолчанию? – JRowan