如何防止用户停止Android服务?

时间:2013-08-29 16:39:06

标签: android service

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

  • 安装为系统应用
  • 使用Device Admin API
  • android:allowClearUserData="false"包含在AndroidManifest中。

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

Service from Running Apps

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

任何帮助将不胜感激!

2 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:0)

  

有没有办法阻止用户在这里停止服务?

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

  

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

由于onDisable()上没有Service,因此这并不奇怪。

  

这是一个企业的安全应用程序,因此预计会持续运行。

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