所以我的问题是:如果有可能阻止用户关闭应用程序。
问题是因为我无法隐藏操作栏,并且我仅将平板电脑用于工作时间注册。因此,如果有人按主页按钮或返回按钮是不可接受的。
所以我想知道我是否可以以某种方式处理 onclose 事件?
是否可以全屏打开应用程序(没有操作栏)?
所以我的问题是:如果有可能阻止用户关闭应用程序。
问题是因为我无法隐藏操作栏,并且我仅将平板电脑用于工作时间注册。因此,如果有人按主页按钮或返回按钮是不可接受的。
所以我想知道我是否可以以某种方式处理 onclose 事件?
是否可以全屏打开应用程序(没有操作栏)?
如果他按下主页按钮,您无法阻止用户关闭应用程序。这就是它的全部想法。否则,您可能会让用户被困在您的应用程序中,无法退出,只能重新启动其设备。
简短的回答是否定的。
长答案是,您可以使用户很难关闭您的应用程序。可以使用的一些技巧是:关闭后立即重新打开应用程序,禁用返回和电源等键,最后禁用主页按钮
用户将始终能够关闭应用程序,否则会有程序滥用它并导致问题,但是您可以采取一些步骤来更好地处理它被关闭的情况。
例如,如果您有一个远程服务正在运行,它可以检查应用程序是否正在运行,并且可以通过多种方式知道,那么它可以触发再次启动应用程序的意图。
了解程序是否处于活动状态的一种方法是让它定期调用服务,基本上是做一次心跳检查,如果它在一段时间内没有被调用,应该是预期检查的 2 或 3 倍-in 期间,然后触发意图。
如果您检测到按下主页按钮,还有其他步骤可能有效,但我需要仔细考虑这些步骤。我认为这取决于您的期望,因为将某人困在您的程序中会非常糟糕。
所以这是我的有效解决方案......
首先您安装 SureLock 应用程序的试用版。然后在该应用程序中禁用操作栏。就是这样。
如果您想再次查看操作栏,您将需要HideBar 应用程序
所有这些仅适用于有根设备...
尝试这个...
//Remove title bar
this.requestWindowFeature(Window.FEATURE_NO_TITLE);
//Remove notification bar
this.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
Ref->如何使用现有的自定义主题在 XML 中隐藏 Activity 的标题栏
防止用户.......
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if(keyCode==KeyEvent.KEYCODE_BACK || keyCode==KeyEvent.KEYCODE_HOME){
// pass some msg ......
return true;
}
return super.onKeyDown(keyCode, event);
}