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

如何防止用户停止Android服务?,android,service,Android,Service,我创建了一个Android应用程序,需要让用户难以停止该应用程序在启动过程中产生的主要服务。这是一个根果冻豆4.1.2设备。以下是我迄今为止采取的一些步骤: 作为系统应用程序安装 使用设备管理API android:allowClearUserData=“false”包含在AndroidManifest中 到目前为止,我所采取的步骤处理了用户停止/禁用应用程序/进程的大多数正常方式;但是,当您在设置->应用程序管理器->运行中查看运行中的应用程序列表时,用户仍然可以点击应用程序启动的长期运行

我创建了一个Android应用程序,需要让用户难以停止该应用程序在启动过程中产生的主要服务。这是一个根果冻豆4.1.2设备。以下是我迄今为止采取的一些步骤:

  • 作为系统应用程序安装
  • 使用设备管理API
  • android:allowClearUserData=“false”包含在AndroidManifest中
到目前为止,我所采取的步骤处理了用户停止/禁用应用程序/进程的大多数正常方式;但是,当您在设置->应用程序管理器->运行中查看运行中的应用程序列表时,用户仍然可以点击应用程序启动的长期运行服务上的“停止”按钮(请参见下图):

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

任何帮助都将不胜感激

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

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

我尝试在服务的onDisable()函数中添加一些代码,但在本例中似乎没有调用该函数

由于
服务上没有
onDisable()
,这并不奇怪

这是一款针对企业的安全应用程序,因此预计它将持续运行


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

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

作为一个用户,我会觉得这很烦人。此外,如果有必要,你可以选择卸载应用程序并永久停止。@Tom:同意你的观点;但是,此应用程序与其他应用程序不同。这是一个针对企业的安全应用程序,因此预计它将持续运行。还有一个小问题,但如果某个应用程序是系统应用程序,则它会导致用户必须根设备才能卸载该应用程序。这可能是故意不可能的。您甚至可以通过这种方式停止一些相当重要的系统服务。但是,如果您启动了服务,则会自动重新启动服务。仅当操作系统杀死服务(而不是用户)时,才会以“粘性”方式启动服务。但很高兴知道,其他主要系统服务也可以通过这种方式停止。谢谢,谢谢。我指的是onDestroy(),不是onDisable()。“强制停止”选项在应用程序为设备管理员时变灰是正确的,但此特定选项仍然对用户可用(即使使用设备管理员)。@user1798667:在这种情况下,我怀疑是否有任何方法阻止它。谢谢。在这种情况下,当一开始可能没有办法将其灰显时,我不会疯狂地试图找到一种方法。@Commonware我同意你的答案,但play store上有一个名为“AppLock”的应用程序,它阻止用户在“设置”中停止服务。当用户单击“停止”按钮时,它会打开密码屏幕。那他们是怎么做的?