关于Android(6.0到最新版本)
我正在开发一个应用程序,我们希望用户一旦接受所有条款,就不能终止进程或强制停止应用程序。老实说,我现在完全迷失了,因为在最新版本的android上,特别是像小米这样的一些品牌,我们遇到了很多麻烦,我们现在不知道该怎么做。
在不可能的情况下,至少可以在用户杀死应用程序时收到警报吗?
谢谢!!
关于Android(6.0到最新版本)
我正在开发一个应用程序,我们希望用户一旦接受所有条款,就不能终止进程或强制停止应用程序。老实说,我现在完全迷失了,因为在最新版本的android上,特别是像小米这样的一些品牌,我们遇到了很多麻烦,我们现在不知道该怎么做。
在不可能的情况下,至少可以在用户杀死应用程序时收到警报吗?
谢谢!!
无法阻止用户杀死应用程序。Android 是一个独特的系统,应用程序无法直接控制其生命周期,但系统可以。系统可以(并且将在需要时)自行终止应用程序或其任何进程。为了让您的应用程序了解这些更改,android 框架提供了各种回调,例如onPause
,当用户终止应用程序时会连续onStop
调用这些回调。onDestroy
旁注:不能保证onDestroy()
应用程序被杀死时会完全执行。不要在那里放置必要的代码。
当然,您可以通过覆盖返回、主页和最近按钮来阻止或尝试阻止用户关闭您的应用程序,但强烈建议不要这样做。即使您成功执行此操作,用户也可以通过其他方式关闭您的应用程序,例如重新启动手机。
那么该怎么办?
您正在寻找信息亭模式应用程序。Kiosk 模式用于单一用途电话,例如餐厅或出租车司机。Kiosk 模式应用程序将用户锁定为仅使用特定应用程序(或特定应用程序集)。
对于普通应用,无法阻止用户强制关闭您的应用。如上所述,您只能通过检查生命周期更改来获取警报。此外,完全不建议更改 android 上硬件按钮的自然行为。用户仍然可以找到关闭您的应用程序的方法。如果您的应用程序正在做一些真正必要的事情,应该在后台进行,请考虑使用服务来代替。此外,如果用户发现您的应用程序过于侵扰,并且您在这种情况下将无法执行任何操作,他们可以随时卸载您的应用程序。
Tl;dr:使用信息亭模式来防止用户退出应用程序。这将只允许用户在他们的设备中访问您的应用程序。
通常你不能!即使您尝试禁用某些按钮,用户也可以随时停止应用程序或重新启动设备。此外,操作系统有时会停止应用程序。作为程序员,你的职责是围绕这个进行编程,并让用户感觉它从未停止过。如果您正在做后台监控,您将需要使用服务。用户仍然可以停止服务。话虽如此,您可以将您的应用程序设置为设备管理应用程序,请参见此处,这可能不允许停止,但除非您在公司内部分发,否则没有人会安装。