我一直在搜索Android文档和stackoverflow,我正在阅读的大部分答案都说你无法禁用或覆盖Android主页按钮。
问题是有些已知的应用正在执行此操作:
这就是我想要的:
父母加载应用程序然后将设备提供给孩子。孩子只能看到设备上已批准的应用程序(我知道如何做这部分)。如果他们从我的应用程序的主启动器屏幕加载已批准的应用程序 - 如果他们按下主页按钮,则会将他们带回我的应用程序而不是回到设备主屏幕。如果用户从我的应用程序按下主页按钮 - 什么都不应该发生。后退按钮也是如此。
我正在寻找适当的解决方案,在覆盖主页按钮时复制Kids Care应用程序的功能。我该怎么做?
答案 0 :(得分:2)
如果有人仍然感兴趣,您可以尝试将其放入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>
答案 1 :(得分:1)
您需要做的是创建自己的启动器,A)启动另一个启动器或B)启动您的活动。发射器必须足够聪明才能知道要启动哪个。因此,如果您在应用中并点击“主页”,它将进入启动器代码并看到您的应用正在运行并决定开始您的活动。然而,它决定你的应用程序没有运行,那么它应该启动另一个启动器。如果您删除活动动画,则它将显示为无缝动画。
答案 2 :(得分:0)
在活动中覆盖方法
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case android.R.id.home:
onBackPressed();
break;
default:
return super.onOptionsItemSelected(item);
}
return false;
}
答案 3 :(得分:-2)
永远不要覆盖主页按钮,但这对我来说可以覆盖后退按钮.-
@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;
}
希望它有所帮助。