Android监听返回键

Android中提供了两种(其实是一种)监听返回键的方法

Activity中有两个可以重写的方法:

一、直接监听返回健

  /**
     * 返回键
     */
    @Override
    public void onBackPressed() {
        super.onBackPressed();
    }

当用户按下手机的【返回】键的时候,这个方法就会回调

二、监听屏幕按键

  @Override
    public boolean onKeyDown(int keyCode, KeyEvent event) {
        if (keyCode== KeyEvent.KEYCODE_BACK) {//返回键

        }
        return super.onKeyDown(keyCode, event);
    }

当用户按下屏幕上的任何按键时,此放法会回调

当我们发现一个功能有两种实现方式时,就要多问自己一句,这两种实现方式有什么不同?

按捺不住自己的好奇心,我点开了源码

  /**
     * activity中的源码
     */
  public boolean onKeyDown(int keyCode, KeyEvent event)  {
        if (keyCode == KeyEvent.KEYCODE_BACK) {
            if (getApplicationInfo().targetSdkVersion
                    >= Build.VERSION_CODES.ECLAIR) {
                event.startTracking();
            } else {
                onBackPressed();
            }
            return true;
        }
}

这个方法很长,但是刚开始就这么几行代码

从源码里可以看到,onKeyDown()方法中回调了onBackPressed()方法。

所以我说其实是一种实现方式!

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容