我有两个警报可以触发两个单独的服务 - 一个是每半小时执行一次,另一个是每个午夜执行。在任何一天的00:00,两个服务都将被执行,并且需要共享一个公共文件。当两个警报都被触发时,我有办法一个接一个地执行这两个服务(最好是半小时一个,然后是午夜一个)?
我已经尝试使文件访问器方法同步(这样服务将不得不等待另一个完成)但是这并不能让我控制首先执行哪些服务。
答案 0 :(得分:1)
2个简单的选项是:
IntentService
或@ commonsware的WakefulIntentService
中运行闹钟。这些类旨在自动排队,而不是同时运行。这样,当一个服务完成时,另一个服务将自动启动,即同步是自动的。就个人而言,我会使用第一个选项(我已经看过@commonsware推荐它,所以我认为它可能是最好的选择)。
这很简单,不依赖于太多额外的类,并且您可以完全控制在哪些时间运行哪些服务。你也只需要一个警报,而不是2个,我认为这个警报更容易维护,而且功耗稍微好一些。