【问题标题】:stopping the user from forcing stop my app阻止用户强制停止我的应用程序
【发布时间】:2019-05-18 21:47:03
【问题描述】:

关于 Android(6.0 至最新版本)

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

在不可能的情况下,至少可以在用户杀死应用程序时得到警报?

谢谢!!

【问题讨论】:

  • 您好,欢迎来到 StackOverflow!您的问题不完整,几乎没有机会按原样回答。请阅读 How-To-Ask 文章并编辑您的问题以添加更多信息。让我们从您针对此事处理的一些 sn-ps 开始! (如果您需要这方面的帮助,请阅读如何创建 Minimal, Complete and Verifiable Example
  • 如果您的程序在最终用户设备上运行,他将始终能够终止、停止、卸载或其他任何方式。能够做到这一点是操作系统管理的基础之一,阻止用户这样做并不是程序的责任。
  • 请问为什么不允许用户停止你的应用程序?您是否正在尝试解决另一个问题,例如数据一致性?作为用户,我会卸载任何违反我意愿的应用并给它评分 1 星。

标签: android kill-process xiaomi


【解决方案1】:

无法阻止用户终止应用。 Android 是一个独特的系统,应用程序无法直接控制其生命周期,但系统可以。系统可以(并且将在需要时)自行终止应用程序或其任何进程。为了让您的应用了解这些更改,android 框架提供了各种回调,例如 onPauseonStoponDestroy,这些回调会在用户终止应用时连续调用。

旁注:不能保证onDestroy() 会在应用程序被终止时完全执行。不要在那里放置必要的代码。

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

那该怎么办?

您正在寻找自助服务终端模式应用。 Kiosk 模式用于单一用途电话,例如餐厅或出租车司机。 Kiosk 模式应用将用户锁定为仅使用特定应用(或特定应用集)。

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

Tl;dr:使用自助服务终端模式来防止用户退出应用。这将只允许用户在其设备中访问您的应用。

【讨论】:

    【解决方案2】:

    通常你不能!即使您尝试禁用某些按钮,用户也可以随时停止应用程序或重新启动设备。此外,操作系统有时会停止应用程序。作为程序员,你的职责是围绕这个进行编程,并给用户一种从未停止过的感觉。如果您正在做后台监控,您将需要使用服务。用户仍然可以停止服务。话虽如此,您可以将您的应用设置为设备管理应用,请参阅here,这可能不允许停止,但除非您在公司内部分发,否则没有人会安装。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-01-15
      • 1970-01-01
      • 1970-01-01
      • 2012-07-12
      • 2014-09-03
      • 1970-01-01
      相关资源
      最近更新 更多