Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/181.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 安卓如何在按下home按钮时重新启用Keyguard?_Android - Fatal编程技术网

Android 安卓如何在按下home按钮时重新启用Keyguard?

Android 安卓如何在按下home按钮时重新启用Keyguard?,android,Android,几天来,我一直在试图找到解决这个问题的办法,谷歌和这个网站上已经有很多帖子了,从所有这些来看,似乎不可能覆盖主页按钮 public boolean onKeyDown(int keyCode, KeyEvent event) { if (keyCode == KeyEvent.KEYCODE_HOME) { return true; } return super.onKeyDown(keyCode, event); } 这肯定行不通 无论如何,我在某个地

几天来,我一直在试图找到解决这个问题的办法,谷歌和这个网站上已经有很多帖子了,从所有这些来看,似乎不可能覆盖主页按钮

public boolean onKeyDown(int keyCode, KeyEvent event) {
    if (keyCode == KeyEvent.KEYCODE_HOME) {
        return true;
    }
    return super.onKeyDown(keyCode, event);
}
这肯定行不通

无论如何,我在某个地方读到,有一种解决方法,当按下“主页”按钮时,可以触发某些东西,部分似乎是有效的

protected void onUserLeaveHint() {
     super.onUserLeaveHint();
     Log.i("LOG", "onUserLeaveHint");
}
但我想做的是在该方法内部重新启用keyguard(我知道要启用锁屏,首先必须禁用它),但由于某些原因,它无法启用。这是我的代码

    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        requestWindowFeature(Window.FEATURE_NO_TITLE);
        getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,WindowManager.LayoutParams.FLAG_FULLSCREEN);
        setContentView(R.layout.activity_lock); 
    }

    public void onStart() {
        super.onStart();
        Globals.km = (KeyguardManager)getSystemService(KEYGUARD_SERVICE);
        Globals.kl = Globals.km.newKeyguardLock("My_App");
        Globals.kl.disableKeyguard();
        Log.i("LOG", "OnStart");
    }

    public void onResume() {
        super.onResume();
        Log.i("LOG", "OnResume");
    }

    protected void onUserLeaveHint() {
        super.onUserLeaveHint();
        Log.i("LOG", "onUserLeaveHint");
        Globals.kl.reenableKeyguard();
    }

    public void onPause() {
        super.onPause();
        Log.i("LOG", "OnPause");
    }

    protected void onStop() {
        super.onStop();
        Log.i("LOG", "OnStop");
    }
可重入仅在活动启动时起作用,因此如果我将其放入onPause()中,将显示锁定屏幕。但当我按下home键时,它就不起作用了


有人能告诉我我做错了什么吗?Thanx.

你不应该覆盖home按钮,用户希望它能以某种方式工作,这并不是说它不可能(据我所知),而是你可能不应该干扰人们在按下home键时预期会发生的事情。我知道并且完全理解你在告诉我什么,但这正是我需要的,我看不到其他解决方案。