Java 如何覆盖android主页按钮
我一直在搜索Android文档和stackoverflow,我读到的大多数答案都说你不能禁用或覆盖Android主页按钮 问题是有一些已知的应用程序正在这样做: 这就是我想要的: 家长加载应用程序,然后将设备交给孩子。孩子只能看到设备上已批准的应用程序(我知道如何执行此部分)。如果他们从我的应用程序的主启动程序屏幕加载已批准的应用程序-如果他们按下home(主页)按钮,它会将他们带回我的应用程序,而不会带回设备主屏幕。如果用户在我的应用程序中按下home(主页)按钮,则不会发生任何事情。后退按钮也是如此Java 如何覆盖android主页按钮,java,android,Java,Android,我一直在搜索Android文档和stackoverflow,我读到的大多数答案都说你不能禁用或覆盖Android主页按钮 问题是有一些已知的应用程序正在这样做: 这就是我想要的: 家长加载应用程序,然后将设备交给孩子。孩子只能看到设备上已批准的应用程序(我知道如何执行此部分)。如果他们从我的应用程序的主启动程序屏幕加载已批准的应用程序-如果他们按下home(主页)按钮,它会将他们带回我的应用程序,而不会带回设备主屏幕。如果用户在我的应用程序中按下home(主页)按钮,则不会发生任何事情。
我正在寻找正确的解决方案,在覆盖主页按钮的情况下复制儿童护理应用程序的功能。我该怎么做?永远不会覆盖“主页”按钮,但这对我来说可以覆盖“后退”按钮-
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
boolean res = super.onKeyDown(keyCode, event);
switch (keyCode) {
case KeyEvent.KEYCODE_HOME: {
// Your Home button logic;
return false;
}
return res;
}
希望有帮助。您需要做的是创建自己的启动器,A)启动另一个启动器,B)启动您的活动。发射器必须足够聪明,才能知道该发射哪个。因此,如果您在应用程序中,单击“主页”,它将进入启动程序代码,查看您的应用程序是否正在运行,并决定启动您的活动。然而,如果它决定你的应用程序没有运行,那么它应该启动另一个启动器。如果删除活动动画,则它将无缝显示。如果有人仍然感兴趣,您可以尝试将其放入
AndroidManifest.xml中的主活动中
<activity
...
android:launchMode="singleTask">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
<category android:name="android.intent.category.HOME" />
<category android:name="android.intent.category.DEFAULT" />
....
</intent-filter>
</activity>
....
在活动中重写该方法
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case android.R.id.home:
onBackPressed();
break;
default:
return super.onOptionsItemSelected(item);
}
return false;
}
这是一个有趣的问题,从可用性的角度来看,这听起来是个坏主意,可能会让很多用户感到沮丧。祝你好运找到你想要的答案这里真的不需要任何示例代码。这是一个简单的活动,清单中有launcher标志。然后在onStart
事件中决定要运行的其他应用程序(您的活动与其他活动)。作为标准和安全预防措施,Home按钮不需要onKeyDown。您好!这不起作用,因为文档中说:此密钥由框架处理,永远不会传递到应用程序。
:/