是否可以使用android:persistent =“true”停止服务

时间:2014-12-28 15:25:34

标签: android service system persistent-connection

我希望在使用系统权限时创建系统服务。该服务应与活动绑定,并符合以下要求

  1. 系统不会杀死服务。
  2. 根据要求,可以停止服务。
  3. 为了达到第一个要求,我通过使用Context.bindService()创建绑定系统服务并添加了android:persistent =" true"来创建我的服务。到服务清单,通知系统此服务应始终保持运行。

    不幸的是在添加了android:persistent =" true"我无法通过Context.unbindService()或通过调用Context.stopService()

    来停止服务

    是否可以使用android停止服务:persistent =" true"如果不是,我的方法应该是什么才能达到这两个要求

1 个答案:

答案 0 :(得分:0)

我刚刚经历过类似的事情。 As per this answer,您需要拨打stopService(),然后unBindService() - 按此顺序拨打电话。将它们放在主机活动的onDestroy方法中。另外,如果您的服务被AlarmManager定期唤醒,我也一定要打电话给cancel()

您可能知道,您可以在ApplicationManager中检查运行服务。在测试这些更改时,强制停止使用旧代码运行的任何服务。

关于persistent标志,我认为as per this,它仅对系统应用程序开发人员有效。在常规的市场应用程序中,我认为该标志被忽略。