如何防止用户关闭应用程序-Android 4.0.3

如何防止用户关闭应用程序-Android 4.0.3,android,action,fullscreen,kiosk,Android,Action,Fullscreen,Kiosk,所以我的问题是:是否有可能阻止用户关闭应用程序 问题是因为我不能隐藏操作栏,我使用平板电脑只是为了工作时间注册。所以,如果有人按home按钮或back按钮,这是不可接受的 所以我想知道我是否能处理好这件事 是否可以全屏打开应用程序(无操作栏)?如果用户按下“主页”按钮,则无法阻止其关闭应用程序。这就是全部的想法。否则,您可能会将用户困在应用程序中,无法退出,只能重新启动其设备。用户将始终能够关闭应用程序,否则会有程序滥用应用程序并导致问题,但您可以采取一些步骤来更好地处理关闭的应用程序 例如,如

所以我的问题是:是否有可能阻止用户关闭应用程序

问题是因为我不能隐藏操作栏,我使用平板电脑只是为了工作时间注册。所以,如果有人按home按钮或back按钮,这是不可接受的

所以我想知道我是否能处理好这件事


是否可以全屏打开应用程序(无操作栏)?

如果用户按下“主页”按钮,则无法阻止其关闭应用程序。这就是全部的想法。否则,您可能会将用户困在应用程序中,无法退出,只能重新启动其设备。

用户将始终能够关闭应用程序,否则会有程序滥用应用程序并导致问题,但您可以采取一些步骤来更好地处理关闭的应用程序

例如,如果您有一个远程服务正在运行,该服务可以检查应用程序是否正在运行,并且可以通过各种方式知道,那么它可能会引发再次启动应用程序的意图

了解程序是否处于活动状态的一种方法是让它定期调用服务,基本上是执行心跳检查,如果它在一段时间内没有被调用,这段时间应该比预期的签入时间长2到3倍,然后触发意图

如果您检测到home(主页)按钮被按下,那么还有其他一些步骤可能会起作用,但我需要仔细考虑这些步骤。不过,我认为这取决于你的期望,因为在你的程序中诱捕某人会非常糟糕。

试试这个

//Remove title bar

this.requestWindowFeature(Window.FEATURE_NO_TITLE);


//Remove notification bar

this.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
参考->

为了防止用户

@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);
}

因此,这是我的解决方案,工作

首先安装SureLock应用程序的试用版。然后在该应用程序中禁用操作栏。就这样

如果您想再次查看操作栏,则需要

所有这些都只在根设备上起作用…

简短的回答是否定的


长话短说,你可以让用户很难关闭你的应用程序。可以使用的一些技巧有:,最后

是的,这正是我需要的。用户在我的应用程序中被捕获。你知道我该怎么做吗?@Michael-你最好的办法是拥有自己的Android版本,然后你就可以捕获它们。那不是真的。您可以编写一个主屏幕替换程序,当按下主屏幕按钮时,该程序将获得控制权。海报想要创建一个只运行一个应用程序的单用途设备。他并不是在说一款面向市场的应用程序,随机用户可以下载它。此外,您不需要创建自己的ROM来完成此操作。他没有说明他的应用程序的用途,所以我假设它是“常规”android应用程序,而不是启动器应用程序。是的,在应用程序中诱捕某人真的很糟糕,但这款平板电脑只针对该应用程序。在单个应用程序中诱捕用户是完全有道理的。Android平板电脑是安装在信息亭或“信息亭模式”下使用的完美设备,正是如此——该设备成为单一用途设备(即:它只运行一个应用程序和一个应用程序)。你不必费心去构建自己的ROM。@DavidWasser-他希望确保它始终处于启动状态,不会被杀死,并且home按钮可能是问题所在,因为其他东西可能会启动。但是,这就是为什么我提出了一个可能的解决方案,并且当我仔细考虑它时,这个解决方案可能是正确的(检测home按钮的按下)。但是,在标准的安卓操作系统上,让它永不消亡是很困难的。@JamesBlack我们已经成功地为安卓平板电脑构建了kiosk模式的应用程序(没有看门狗服务重新启动应用程序)。我从来没有见过安卓系统在设备上运行的唯一应用程序的情况下,将主屏幕替换掉。当然,您的里程数可能会有所不同;-)this.getWindow().setFlags(WindowManager.LayoutParams.FLAG_全屏,WindowManager.LayoutParams.FLAG_全屏);你把代码放在哪里了?用什么方法?它需要进入
onCreate()
,并且需要在调用
setContentView()
之前完成。只需参考此链接即可隐藏它……而否决票正是为什么?此海报想要为Android创建一个信息亭模式应用程序。请尝试此stackoverflow搜索:。“我相信你会在那里找到你想要的东西(或者至少得到一些想法)@DavidWasser如果你作为一名主题专家能够为这个问题和未来类似的问题找到一个好的重复目标,这可能会有所帮助。”