8.1 问题
应用程序要以自己的方式来处理用户按下物理BACK按键后的行为。
8.2 解决方案
(API Level 5)
可以在Activity中使用onBackPressed()回调方法或者在Fragment中操作回退栈。
8.3 实现机制
如果想要用户在你的Activity上按下BACK按键时可以得到相应通知,可以覆写onBackPressed()方法,如下所示:
@Override
public void onBackPressed() {
//实现自定义返回功能
//调用super以进行常规处理(例如销毁Activity)
super.onBackPressed();
}
这个方法的默认实现会将当前回退栈中的Fragment弹出并且销毁Activity。如果不打算改变这个流程,只需要确保调用父类的实现来保存这种常规的处理方式。
警告:
覆写物理按键事件时应保持慎重。在Android系统中,所有的物理按键都有一致的功能,如果这些按键的功能变化太大,会让用户感到困惑和不满。
###BACK操作和Fragment
当UI中包含Fragment时,可以进一步自定义设备的BACK按键的行为。默认情况下,在UI中添加或替换Fragment的操作并不会在任务的回退栈中添加相应的Fragment,因此当用户按下BACK按键后,并不能够回退这些动作。但是,所有的FragmentTransaction都可以作为条目通过简单地调用addToBackStack()(在事务提交前&#x