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
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。