【问题标题】:Avoid Multiple Instances for a Service避免服务的多个实例
【发布时间】:2019-10-29 13:50:18
【问题描述】:

我创建了一个前台服务,它运行良好并在后台执行任务, 但是每当我调用startForegroundService onCreate 方法时都会被调用。

据我所知,根据documentation,Service 是一种单例类,但仍然会创建多个实例。

有谁知道如何避免多个服务实例?

【问题讨论】:

  • 不是通用的,但您可以检查该服务已经是 running by checking its own static instance or flag(不要关注大多数投票!查看整个主题和 cmets)
  • 您很可能误解了实际存活的Services 的数量。 onDestroy() 被调用了多少次?仅仅因为您的Service 创建的一些对象是活动的,并且任务正在后台执行,并不意味着操作系统没有破坏您的Service。您应该解释您正在使用的绑定方案。你有没有打电话给stopService()stopSelf()

标签: android service singleton background-service


【解决方案1】:

服务被破坏,但其实例在此处重复创建的处理程序。 通过在服务的 onDestroy 中删除处理程序解决了问题 @greeble31 感谢您的提示

【讨论】:

    猜你喜欢
    • 2020-10-23
    • 1970-01-01
    • 2015-11-01
    • 2014-08-11
    • 2020-10-11
    • 1970-01-01
    • 1970-01-01
    • 2016-01-05
    • 1970-01-01
    相关资源
    最近更新 更多