0

我创建了一个 Android 应用程序,需要让用户难以停止应用程序在启动过程中生成的主要服务。这适用于有根的 Jelly Bean 4.1.2 设备。以下是我到目前为止采取的一些步骤:

  • 作为系统应用程序安装
  • 使用设备管理 API
  • android:allowClearUserData="false"包含在 AndroidManifest 中。

到目前为止,我采取的步骤处理了用户停止/禁用应用程序/进程的大多数正常方式;但是,当您在设置 -> 应用程序管理器 -> 运行中查看正在运行的应用程序列表时,用户仍然可以点击应用程序启动的长时间运行服务上的“停止”按钮(见下图):

来自运行应用程序的服务

有什么办法可以阻止用户在这里停止服务?或者当用户点击此停止按钮时,重新启动服务的最佳方式是什么?我尝试将一些代码放在服务的 onDisable() 函数中,但在这种情况下似乎没有调用该函数。

任何帮助,将不胜感激!

4

2 回答 2

1

如上所述,除非以root身份执行,否则没有此选项,但是您可以在启动服务时创建一个AlarmManager,该服务不时运行,如果服务不运行,系统将运行,它将重新创建。

于 2018-04-07T14:18:02.050 回答
0

有什么办法可以阻止用户在这里停止服务?

让您的应用成为设备管理员可能会阻止这一点。它肯定会阻止“强制停止”选项。

我尝试将一些代码放在服务的 onDisable() 函数中,但在这种情况下似乎没有调用该函数。

由于没有onDisable()a Service,这并不奇怪。

这是一个企业的安全应用程序,因此它有望持续运行。

“企业的安全应用程序”没有任何内在要求它“持续运行”。

于 2013-08-29T17:27:33.230 回答