zoukankan      html  css  js  c++  java
  • Android Activity返回键控制的两种方式

    Android Activity返回键监听的两种方式
    1、覆写Activity的OnBackPressed方法
    官方解释:
    Called when the activity has detected the user's press of the back key.
    
    The default implementation simply finishes the current activity, but you can override this to do whatever you want.
    @Override
    public void onBackPressed() {
      
    // 完全由自己控制返回键逻辑,系统不再控制,但是有个前提是:
      // 不要在Activity的onKeyDown或者OnKeyUp中拦截掉返回键

      
    // 拦截:就是在OnKeyDown或者OnKeyUp中自己处理了返回键
      //(这里处理之后return true.或者return false都会导致onBackPressed不会执行)
      
    // 不拦截:在OnKeyDown和OnKeyUp中返回super对应的方法
      //(如果两个方法都被覆写就分别都要返回super.onKeyDown,super.onKeyUp)
    }
     
    2、覆写Activity的onKeyDown或者OnkeyUp,拦截返回键
    @Override
    public boolean onKeyUp(int keyCode, KeyEvent event) {
            if (keyCode == KeyCode.KEYCODE_BACK) {
                    return isCosumenBackKey();
            }
            return false;
    }
    
    private boolean isCosumenBackKey() {
            // 这儿做返回键的控制,如果自己处理返回键逻辑就返回true,如果返回false,代表继续向下传递back事件,由系统去控制
            return true;
    }
    举例:以下代码不会走到onBackPressed (在一个Activity中同时覆写下面三个方法)
    @Override
    public void onBackPressed() {
             
    }
    
    @Override
    public boolean onKeyUp(int keyCode, KeyEvent event) {
            if (keyCode == KeyCode.KEYCODE_BACK)
                    return false;    // return false 或者return true 都不会走onBackPressed了
            return false;
    }
    
    @Override
    public boolean onKeyDown(int keyCode, KeyEvent event) {
            if (keyCode == KeyCode.KEYCODE_BACK)
                    return super.onKeyDown(keyCode, event);  // 不拦截,如果这里拦截了,也不会走到onBackPressed方法了
            return false;
    }

     

  • 相关阅读:
    基于接口而非实现编程 和 依赖注入
    程序出错该返回啥?
    js关于for循环实现线程休眠效果的问题
    预祝1024节日快乐!
    20201101_Python的虚拟环境问题
    机器学习——dbscan密度聚类
    公司里使用gitlab管理项目
    MYSQL集群MHA架构实现手册
    vbox导入虚拟电脑网卡MAC问题,MacOS 通过virtualbox安装的centos7虚拟机不能上网解决
    MySQL误操作后如何快速回滚(转)
  • 原文地址:https://www.cnblogs.com/popfisher/p/5191245.html
Copyright © 2011-2022 走看看