我正在实现一个后台进程来更新我的应用使用的信息。 我只希望这个过程每天更新一次,如果该过程获取的数据比之前的数据更新,我想向用户显示通知,就像 twitter/gmail 所做的那样。
我希望更新过程自动运行,即使主应用程序未打开也是如此。
Service
是最好的方式吗?我已经读了很多关于这个的文章,我认为一个每天只工作一次的服务一直运行似乎有点矫枉过正。
但是我注意到 google 在我的 nexus 上持续运行 friendlocation 服务和 google+ 服务。
我研究过通过 AlarmManager 启动我的服务,因此它只在需要时启动。
一些帖子还建议使用 Handler
类,我认为这行不通。
只是在这里寻找最佳实践。
最佳答案
I figured a service running all the time for something that is only going to do work once a day seems a little overkill.
当然。
I've look into starting my service via the AlarmManager so its only started when required.
这是正确答案。
如果您只希望在设备开启时调用您的代码,请实现一个IntentService
,在其onHandleIntent()
中完成您的工作,并让 AlarmManager
按照您想要的时间表启动服务。
如果你想让你的代码强制唤醒手机,你可以这样做,但你需要使用 _WAKEUP
风格的闹钟,你可能想看看我的 WakefulIntentService
,旨在处理这种模式。
关于android - 当主应用程序未运行时显示通知的后台进程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6706082/