2016-09-28 35 views
0

我想运行服务要求不同的事件SyncServiceNetworkChangeGpsChangeAppOpenedByUserDeviceBootOnNewSmsReceived安卓:队列服务调用

它有多个网络电话。如果同时发生超过1个事件,或者如果在上次调用运行时发生了1个事件,则会再次调用该服务。我希望只有当函数当前没有运行时才会发生调用。如果它已经在运行,我希望服务等待以前的执行完成。

回答

0

每次尝试星号服务时,Intent都会传递给onStartCommandMethod。您可以使用'命令'设计模式 - 从意图创建命令并将其添加到某个命令队列中。当前命令完成后,检查队列中是否有其他命令并执行另一个命令。它不是,停止服务。注意,与IntentService相比,您应该明确地在后台运行它。