我有两个警报来触发两个不同的服务--一个每半小时执行一次,另一个每午夜执行一次。在任何一天的零点整,这两个服务都将被执行,并且需要共享一个公共文件。有没有办法让我在两个告警都触发的时候,依次执行这两个服务(最好是先执行半小时的服务,然后再执行午夜的服务)?
我尝试使文件访问器方法同步(这样服务将不得不等待其他服务完成),但这并不能让我控制哪个服务最先执行。
发布于 2012-09-13 17:28:41
2个简单的选项是:
IntentService或@commonsware的WakefulIntentService中运行您的警报。这些类被设计为自动排队,而不是同时运行。这样,当一个服务完成时,另一个服务将自动启动,即同步是自动的。就我个人而言,我会使用第一个选项(我已经看到@commonsware推荐了它,所以我认为这可能是最好的方法)。
它很简单,不依赖于太多额外的类,并且您可以完全控制在哪些时间运行哪些服务。你也只需要一个警报,而不是两个,我认为这将更容易维护,并在功耗上略有改善。
https://stackoverflow.com/questions/12403160
复制相似问题