美文网首页
Android监听返回键

Android监听返回键

作者: 王魔王 | 来源:发表于2020-04-21 16:03 被阅读0次

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()方法。

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

相关文章

网友评论

      本文标题:Android监听返回键

      本文链接:https://www.haomeiwen.com/subject/soauihtx.html