【问题标题】:how to prevent user to force stop service in android?如何防止用户在android中强制停止服务?
【发布时间】:2012-06-21 08:07:35
【问题描述】:

我有一个要求,我想在后台连续运行服务,它不能被用户置顶,或者不能通过进入管理应用程序来强制停止。当用户尝试强制停止服务时,有什么方法可以得到通知?或任何隐藏我们的应用程序在 android 中的方法。

我已经完成了 START_STICKY 但它无法工作。 是否可以在无法杀死的android系统服务(或系统代码)或内核级编码上编写我们的代码?

我的主要标准是我的服务不能被用户杀死

请帮帮我

提前致谢

【问题讨论】:

  • 如果你能阻止他们停止它,他们只会生气并最终卸载它。阻止用户控制自己设备上运行的内容的原因是什么?
  • 我同意@weston - 从用户手中夺走控制权听起来很狡猾,很可能会惹恼他们。
  • @weston - 但我的应用程序是手机上的间谍,这就是为什么我想阻止用户停止它
  • 这里没有人想帮你制作间谍软件!
  • 请在此处查看我的答案:stackoverflow.com/questions/9477606/…

标签: android android-service


【解决方案1】:

首先,托管服务的进程在内存不足的情况下总是可以被系统杀死。您的服务甚至不会注意到它已被杀死,它甚至不会得到 onDestroy()。如果您的服务正在执行最终用户直接知道的操作(例如播放音乐),您应该在前台启动服务(使用 startForeground),以降低系统在内存不足的情况下将其终止的可能性。

如果服务被最终用户或系统杀死,它将在需要或有可用资源时再次重新启动。

话虽如此,您想要做的事情是不可能的,这在设计上是不可能的。要么你的标准是基于对 Android 工作原理的一些误解,要么你的应用程序应该做一些它想要对最终用户隐藏的事情(这是非常值得怀疑的)。

【讨论】:

  • 我的服务并没有意识到最终用户将作为间谍在最终用户身上。用户不知道应用程序已安装在他们的手机中,我可以启动两项服务吗?
  • 很抱歉,除非您针对的是有根设备,或者可以访问您所针对的设备上的平台,否则您根本无法做您想做的事情,因为 Android 是设计的保护最终用户免受不符合用户最佳利益的应用程序的影响。
  • 感谢回答,所以无法在安卓中创建间谍软件?
  • 如果这个答案对您有帮助,请考虑投票或至少接受它,这样问题就不会再显示为未回答了。
  • @bergsell 在这种情况下,它保护用户免受耗尽电池或对用户隐藏的应用程序的伤害。我认为 Android 没有针对间谍软件的对策。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-04-22
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多