我正在实施一个后台流程来更新我的应用使用的信息。 我只想让这个过程每天更新一次,如果这个过程获得的数据比我想要向用户提供通知之前的数据更新,就像twitter / gmail那样。
我希望更新过程能够自动运行,即使主应用程序未打开也是如此。
Service
是最好的方式吗?我一直在阅读这篇文章,我觉得一个服务一直在运行,每天只能做一次工作似乎有点矫枉过正。
但是我注意到google运行服务的friendlocation和谷歌+服务连续在我的nexus。
我期待通过AlarmManager启动我的服务,因此它只在需要时启动。
有些帖子还建议使用Handler
类,我认为这不会起作用。
在这里寻找最好的做法。
答案 0 :(得分:2)
我认为一项服务一直在运行,因为每天只能做一次工作似乎有点矫枉过正。
绝对
我期待通过AlarmManager启动我的服务,因此它只在需要时启动。
这是正确答案。
如果您只希望在设备启用时调用您的代码,请实施IntentService
,在onHandleIntent()
中执行您的工作,并AlarmManager
启动您的服务期望的时间表。
如果您希望代码强制唤醒手机,您可以这样做,但您需要使用_WAKEUP
式闹钟,并且您可能希望查看我的{{3} },旨在处理这种模式。