方式1 :重写onKeyDown()方法

示例代码1 :
    判断被点击的是不是返回键
 //监听返回键
    @Override
    public boolean onKeyDown(int keyCode, KeyEvent event) {

        if (keyCode == KeyEvent.KEYCODE_BACK) { //是返回键

               //具体事件逻辑

        }

        return super.onKeyDown(keyCode, event);
    }
示例代码2 :
    判断被点击的是不是返回键 ;并判断返回键被点击的状态,是单点还是长按
 //监听返回键
    @Override
    public boolean onKeyDown(int keyCode, KeyEvent event) {

        if (keyCode == KeyEvent.KEYCODE_BACK) { //是返回键
            if (event.getRepeatCount() == 0) {  //点了一次返回键(按下+弹起算是一次点击)
                Log.e("abc", "点击了一次返回键");
                return true;
            } else {                            //点了多次返回键(按下后没有抬起--也就是长按)
                Log.e("abc", "点击了返回键后没有抬起,此时关闭页面");
                finish();
                return false;
            }
        }

        return super.onKeyDown(keyCode, event);
    }

方式2 :重写onBackPressed 方法

 @Override
    public void onBackPressed() {
        //具体事件逻辑
        super.onBackPressed();
    }