我想在不同的事件上运行名为 SyncService 的服务,例如 NetworkChange , GpsChange , AppOpenedByUser , DeviceBoot , OnNewSmsReceived
它有多个网络呼叫。如果同时发生多个事件,或者在上一次调用运行时发生了1个事件,则再次调用该服务。我希望只有当函数当前没有运行时才会发生调用。如果它已经在运行,我希望服务等待上一次执行完成。
答案 0 :(得分:0)
每次尝试星标服务时,Intent都会被发送到onStartCommandMethod。你可以使用' Command'设计模式 - 从intent创建命令并将其添加到某个命令队列中。当前命令完成后,检查队列中是否有其他命令并执行另一个命令。它不是,停止服务。请注意,与IntentService相比,您应该明确地在后台运行它。