阻止用户强制停止我的应用

时间:2018-12-18 13:03:27

标签: android kill-process xiaomi

关于Android(6.0到最新版本)

我正在开发一个应用程序,我们希望用户一旦接受所有条款,就不能终止该进程或强制停止该应用程序。老实说,我现在已经完全迷失了,因为在最新版本的android上,尤其是像小米这样的一些品牌,我们遇到了很多麻烦,而且我们现在不知道该怎么做。

在不可能的情况下,至少每当用户杀死该应用程序时,都会收到警报吗?

谢谢!

2 个答案:

答案 0 :(得分:0)

无法阻止用户杀死应用。 Android是一个独特的系统,该应用程序无法直接控制其生命周期,但可以控制。系统可以(并且将在需要时自动)杀死该应用程序或其任何进程。为了使您的应用知道这些更改,android框架提供了各种回调,例如onPauseonStoponDestroy,当用户杀死该应用时会依次调用它们。

侧面说明:不能保证onDestroy()将在应用程序被终止时被完全执行。不要在其中放置必要的代码。

当然,您可以通过覆盖后退,主页和最近按钮来阻止或尝试阻止用户关闭应用程序,但强烈建议您不要这样做。即使您成功完成操作,用户也可以通过其他方式关闭您的应用程序,例如重新启动手机。

那该怎么办?

您正在寻找信息亭模式的应用。自助服务机模式用于餐厅或出租车司机等单用途电话。信息亭模式的应用只能将用户锁定到一个特定的应用(或一组特定的应用)。

对于普通应用程序,无法阻止用户强制关闭您的应用程序。您只能通过如上所述检查生命周期更改来获取警报。此外,完全不建议更改android上硬件按钮的自然行为。用户仍然可以找到关闭您的应用程序的方法。如果您的应用正在执行某些必不可少的事情,并且应该在后台进行,请考虑使用服务代替。另外,如果用户发现自己的应用太过入侵并且在这种情况下您将无法做任何事情,他们可以随时卸载

Tl; dr:使用信息亭模式阻止用户退出应用。这将只允许用户在其设备上访问您的应用。

答案 1 :(得分:0)

通常你不能!即使您尝试禁用某些按钮,用户也始终可以停止应用程序或重新启动设备。另外,操作系统有时会停止该应用程序。作为程序员,您的责任是对此进行编程,并使用户感到它从未停止过。如果要进行后台监视,则需要使用服务。用户仍然可以停止服务。话虽如此,您可以将您的应用设置为“设备管理”应用,请参见here,这可能不允许停止,但是除非您是内部分发给公司,否则没有人安装。