禁用或者重写系统自带的返回键

前言

开发项目时,如果不禁用或者重写系统自带的返回键,将会导致在某个页面点击系统自带返回键时直接退出整个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;
    }

总结

一个项目有很多界面,我们经常会忘记每个界面都会有系统自带的返回键,导致项目上线后,用户点击系统自带的返回键,直接跳出整个程序,显得系统出问题。所以这个千万不要忘记加。(之所以写这个,是因为刚开始接触时,并不知道怎么在系统自带的返回键下跳转页面,当时就在想要是一搜就搜到该多好。写给一如当时的我)

猜你喜欢

转载自blog.csdn.net/m0_44980493/article/details/128118930