我正在创建一个主屏幕锁定应用程序。我想禁用主页按钮,以便用户无法进一步解锁屏幕。
据我们所知,只要我们不是主屏幕,我们就无法真正禁用主页按钮。所以我在我的onPause()
方法中再次开始了我的活动。因此,当用户按下主页按钮时,应用程序将转到后台并触发onPause()
,然后我再次启动活动。
@Override
protected void onPause() {
super.onPause();
startActivity(new Intent(getApplicationContext(), LockScreen.class).setFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION));
finish();
}
但问题一旦按下主页按钮,应用程序将转到后台,再次启动活动并前进到前台需要2秒钟。
有没有更快的解决方案呢?如何在按下主页按钮后立即开始活动?
更新
不要告诉我们必须是主屏幕才能禁用主页按钮。如果是这种情况,那么必须有一个走动,因为屏幕锁定应用程序这样做。
我的问题已被标记为重复。但请阅读给出的答案。它没有回答我的问题。我想覆盖主页按钮而不是主屏幕。如果你说它不可能那么请在Play商店看到任何屏幕锁定应用程序。所以请建议任何其他解决方案。你可以搜索整个SO,如果你仍然可以找到这个问题的工作答案,请删除这个问题。如果没有请不要压制这个问题。
答案 0 :(得分:1)
“主页”按钮是一个非常危险的按钮,因此,Android不会让您像使用“返回”按钮一样覆盖其行为。
看一下这个讨论:Overriding the Home button - how do I get rid of the choice?
您会注意到主页按钮似乎是作为意图调用实现的,因此您最终必须为您的活动添加意图类别。然后,只要用户回家,您的应用就会显示为一个选项。您应该考虑使用主页按钮实现的目标。如果它不替换设备的默认主屏幕,我会担心重载HOME按钮,但它是可能的(根据上面的讨论中的讨论。)