Android监听返回键

2020-04-21  本文已影响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()方法。

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

上一篇 下一篇

猜你喜欢

热点阅读