码迷,mamicode.com
首页 > 移动开发 > 详细

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

时间:2015-03-07 11:42:39      阅读:360      评论:0      收藏:0      [点我收藏+]

标签:主页键   最近应用键   onuserleavehint   onkeydown   keycode_back   

相比主页键(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

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

标签:主页键   最近应用键   onuserleavehint   onkeydown   keycode_back   

原文地址:http://blog.csdn.net/zhoumushui/article/details/44113875

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!