我正在创建一个主屏幕锁定应用程序。我想禁用主页按钮,这样用户就不能在不解锁屏幕的情况下更进一步。
正如我们所知,只要我们不是主屏幕,我们就不能真正禁用主页按钮。因此,我再次以我的onPause()
方法开始我的活动。因此,当用户按home按钮时,应用程序转到后台,onPause()
被触发,我再次启动该活动。
@Override
protected void onPause() {
super.onPause();
startActivity(new Intent(getApplicationContext(), LockScreen.class).setFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION));
finish();
}
但是,一旦按下“主页”按钮,应用程序就会转到后台,需要大约2秒的时间才能再次启动活动并显示出来。
有什么更快的解决办法吗?一旦按下“首页”按钮,我如何才能启动该活动?
更新
不要告诉e,我们必须是主屏幕,才能禁用主页按钮。如果是这样的话,就必须四处走走,因为屏幕锁定应用程序就是这样做的。
我的问题被标记为重复。但请读一下答案。它没有回答我的问题。我想要覆盖主页按钮而不是主屏幕。如果你说这是不可能的,那么请在游戏商店看到任何屏幕锁定应用程序。所以请提出其他解决方案。你可以搜索整个所以,如果你还能找到这个问题的工作答案,请删除这个问题。如果没有,请不要压制这个问题。
发布于 2016-05-21 12:47:38
Home按钮是一个非常危险的覆盖按钮,因此Android将不允许您按照回退按钮的方式重写它的行为。
看看下面的讨论:Overriding the Home button - how do I get rid of the choice?
您将注意到home按钮似乎是作为意图调用实现的,因此您将不得不向您的活动中添加一个意向类别。然后,任何时候,当用户击中家,你的应用程序将显示为一个选项。你应该考虑一下你想用“主页”按钮完成什么任务。如果它不替换设备的默认主屏幕,我将小心重载home按钮,但这是可能的(在上面的线程中每一次讨论)。
https://stackoverflow.com/questions/37362843
复制相似问题