java - 在单独的线程中运行服务并每 10 分钟唤醒一次?

标签 java android multithreading android-service

我的应用程序将每 10 分钟访问一次网络服务以访问数据(即使应用程序不在前台)。最好的方法是什么?

首先我需要在单独的线程中启动我的服务吗? 以及如何让它每 10 分钟从服务器获取更新一次?有些人说 handler.postdelayed 而有些人使用 Alarm Manager。哪个更好,我们有一些例子吗。

最佳答案

如果更新将在您的应用程序运行时发生,您可以使用计时器,如其他答案中所建议的,或更新的 ScheduledThreadPoolExecutor .
如果您的应用程序即使在未运行时也会更新,您应该使用 AlarmManager :

The Alarm Manager is intended for cases where you want to have your application code run at a specific time, even if your application is not currently running.

请注意,如果您计划在关闭应用程序时进行更新,则每十分钟一次的频率非常高,因此可能有点太耗电了。

关于java - 在单独的线程中运行服务并每 10 分钟唤醒一次?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8939734/

相关文章:

android - 如何在按钮单击时显示 DatePickerDialog?

c# - 事务死锁,如何设计得当?

multithreading - 服务器上 CPU 密集型和 IO 密集型进程的多进程与多线程

java - 在 Java 中计算反函数

java - 比较 ArrayList 问题中的新整数对象

安卓 : Html Anchor Link works only once in webview

Android 共享 Intent 选择器 - 仅邮件和剪贴板

java - myeclipse 中的注释需要 java pmd 规则

java - 更新应用程序状态(java缓存)与数据库同步

java - Phaser 问题(使用 JSR166y 和最新版本 6 的 JDK)