前言
开发项目时,如果不禁用或者重写系统自带的返回键,将会导致在某个页面点击系统自带返回键时直接退出整个app,或者可能与自己写的返回键冲突,本文就介绍了如何禁用或者重写系统返回键。
一、禁用系统返回键
代码如下(示例):
@Override
public boolean dispatchKeyEvent(KeyEvent event) {
if (event.getKeyCode() == KeyEvent.KEYCODE_BACK) {
//do something.
return true;
} else {
return super.dispatchKeyEvent(event);
}
}
二、使用系统返回键,页面1返回到页面2
这个应该是用得最多的,因为禁用系统返回键,个人觉得用户体验不是很好,比较符合逻辑的应该是从当前界面跳转到上一个界面。
代码如下(示例):
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK) {
if (progressDialog != null) {
boolean showing = progressDialog.isShowing();
if (showing) {
progressDialog.dismiss();
}
}
Intent intentLoginActivity = new Intent(yemian1Activity.this, yemian2Activity.class);
startActivity(intentLoginActivity);
finish();
}
return false;
}
总结
一个项目有很多界面,我们经常会忘记每个界面都会有系统自带的返回键,导致项目上线后,用户点击系统自带的返回键,直接跳出整个程序,显得系统出问题。所以这个千万不要忘记加。(之所以写这个,是因为刚开始接触时,并不知道怎么在系统自带的返回键下跳转页面,当时就在想要是一搜就搜到该多好。写给一如当时的我)