我需要定期从服务器获取新闻/事件更新,例如我的Android应用中每20分钟一次。 AFAIK Intent Service和Broadcast Receiver组合将比使用Service更好。因为我不打算与正在运行的服务进行通信。为了定期获取事件,我知道2个选项
1)使用Timer Task ScheduleAtFixedRate,我将启动IntentService,它将获取一次&广播如果有任何更新并自行销毁。在给定Interval之后,TimerTask将再次触发IntentService
2)只需在应用程序启动时和Intent Service中启动Intent Service onHandleIntent方法启动TimerTask ScheduleAtFixedRate。如果这是首选方式,我何时以及何时取消计时器任务以及何时意图服务被销毁。
或者我必须使用Alarm Manager。注意我需要这些更新,只要我使用应用程序,我也需要每20到30分钟更新一次,而不是每1或3分钟更新一次。
任何人都请建议我,提前致谢。
答案 0 :(得分:7)
转到AlarmManager。我之前尝试过TimerTask,它在某些设备上无法正常工作,并在一段时间后被杀死。