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