【发布时间】: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