当前位置: 代码迷 >> Android >> Android 首页键和最近应用键的处理onUserLeaveHint
  详细解决方案

Android 首页键和最近应用键的处理onUserLeaveHint

热度:26   发布时间:2016-04-28 02:13:39.0
Android 主页键和最近应用键的处理onUserLeaveHint

相比主页键(HOME)和最近应用键(APP_SWITCH)的处理,返回键比较简单,复写onKeyDown就可以实现,如下:

 @Override    public boolean onKeyDown(int keyCode, KeyEvent event) {        //  KeyEvent.KEYCODE_HOME  KeyEvent.KEYCODE_APP_SWITCH        if (keyCode == KeyEvent.KEYCODE_BACK) {            exitAction();            return true;        } else            return super.onKeyDown(keyCode, event);    }

HOME和APP_SWITCH比较复杂,尤其是HOME键,如果不特殊设置,有可能会被恶意应用利用。所以即使是处理了HOME键,实测会首先进入Launcher,一段时间后才会执行我们的操作,想必这也是系统层从安全角度的考量,有时间看一下系统源码。


尝试过多种方式之后,复写onUserLeaveHint函数比较便捷,如下即可:

 @Override    protected void onUserLeaveHint() {        //super.onUserLeaveHint();        exitAction();    }

把操作写在了exitAction函数中,这里以启动设置为例:

 private void exitAction() {        try {            Intent intent = new Intent();            ComponentName componentName = new ComponentName("com.android.settings",                    "com.android.settings.Settings");            intent.setComponent(componentName);            startActivity(intent);        } catch (Exception e) {            e.printStackTrace();        }    }

转载请注明出处:周木水的CSDN博客 http://blog.csdn.net/zhoumushui 
我的GitHub:周木水的GitHub https://github.com/zhoumushui

  相关解决方案