android - 当主应用程序未运行时显示通知的后台进程

标签 android background-process

我正在实现一个后台进程来更新我的应用使用的信息。 我只希望这个过程每天更新一次,如果该过程获取的数据比之前的数据更新,我想向用户显示通知,就像 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/

相关文章:

android - 如何将 Android 应用程序保护到设备?

shell - 后台进程输出到Shell变量的输出

python-3.x - 如何创建一个独立的进程让python在后台运行

android - 如何更改程序代码中的EditText 边框线颜色?

java - 从将在 Android 应用程序中具有全局范围的代码中设置区域设置

ruby-on-rails - delayed_job 不记录

c# - 如何在 ASP.NET Core 2.1 中的计时器上运行 BackgroundService

ios - 了解后台任务执行语法和 GCD

java - 如何从 Azure DB 表获取数据到 Android 应用程序?

android - 将 Ant Library 项目添加到我的 Gradle 项目中