【问题标题】:Restart a background service if stopped如果停止则重新启动后台服务
【发布时间】:2014-01-31 07:48:38
【问题描述】:

我的问题只是关于如果服务在完成某些任务后自行停止,我们如何从活动中重新启动在其自己的线程中在后台运行的 android 服务。

【问题讨论】:

  • 使用警报管理器[如何在android中安排一些代码执行或:android中的守护线程到底是什么?][1] [1]:stackoverflow.com/questions/3883246/…
  • 实际上我希望它在来自活动的某个调用之后运行(仅当它已停止时)并保持活动状态,直到它完成它的工作,即使活动早已死亡。

标签: android android-service


【解决方案1】:

【讨论】:

  • 那它不会是后台服务吧?会吗?
  • 服务不能在前台,它们总是在后台运行。从活动开始并不重要。
  • 其实严格来说不是这样,但这是个特例:developer.android.com/guide/components/services.html#Foreground
  • @Philio 我只是想问一下我是否使用您的方法从我的活动中启动它,那么我的服务会在活动长期停止后激活吗?
  • 这取决于服务,你需要重写 onStartCommand 来实现。
【解决方案2】:

确保您正在扩展服务,而不是 IntentService。然后在 STICKY 模式下启动服务。它应该以这种方式保持活跃。即使它因某种原因死掉(系统可能会杀死它等),它也应该自行重启。

阅读此链接:START_STICKY and START_NOT_STICKY

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-06-14
    • 1970-01-01
    • 2019-04-25
    • 1970-01-01
    相关资源
    最近更新 更多