0

我正在开发应该启动一个应用程序并且用户无法关闭该应用程序或离开它的应用程序。所以我需要禁用所有 3x 按钮(返回、主页、多任务)。禁用后退按钮很容易仅覆盖方法 onBackPressed()。但是我怎样才能禁用 Home 和 Multitask。我读到在 4.0+ android 中无法覆盖主页按钮,所以我该怎么做?我可以阻止多任务按钮,使用户无法从应用程序中逃脱吗?

PS:此应用程序永远不会在 Android Market 上发布,因此解决方案可能会违反“规则”。

4

2 回答 2

1

返回键

http://developer.android.com/guide/components/tasks-and-back-stack.html

假设您处于活动 A 中,您导航到 B,然后导航到 C。在活动 C 中,您按下返回按钮,活动 C 从堆栈中弹出、销毁并显示上一个活动 B

假设您希望从 C 导航到 A,那么您可以覆盖按下的后退按钮

@Override
public boolean onKeyDown(int keyCode, KeyEvent event) { 
if (keyCode == KeyEvent.KEYCODE_BACK) {
onBackPressed();
}

return super.onKeyDown(keyCode, event);
}

public void onBackPressed() {
Intent myIntent = new Intent(C.this, A.class);
myIntent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); // clear back stack 
startActivity(myIntent); 
finish(); 
return;
}

主页按钮

除非您将应用程序设为主屏幕,否则无法拦截 Android 上的主页按钮。这是出于安全原因,因此恶意应用程序无法通过覆盖所有可以退出的按钮来接管您的设备。主页按钮是能够离开任何应用程序的一种可靠方式。

如果要处理 HOME 按钮,请实现主屏幕。您不能禁用主页按钮。

android:launchMode ="标准|singleTop|singleTask |singleInstance"

检查单实例的活动启动模式@ http://developer.android.com/guide/topics/manifest/activity-element.html#lmode。设备一次只能保存一个活动实例——只有一个这样的任务。

于 2013-04-12T12:40:26.660 回答
0

您可以隐藏它们或使它们变暗。看:

http://developer.android.com/reference/android/view/View.html#setSystemUiVisibility(int)

于 2013-04-12T12:39:16.960 回答