【发布时间】:2016-09-16 04:57:27
【问题描述】:
我想每 1 小时检查一次网络以将数据从本地存储更新到数据库,但不知道使用哪个计时器或警报。如果您有任何代码,请与我分享,谢谢。
【问题讨论】:
-
尝试创建intent服务来检查互连是否可用。如果连接可用,则通知接收者并在后台更新数据。
标签: android timer alarmmanager
我想每 1 小时检查一次网络以将数据从本地存储更新到数据库,但不知道使用哪个计时器或警报。如果您有任何代码,请与我分享,谢谢。
【问题讨论】:
标签: android timer alarmmanager
您可以使用GcmNetworkManager,它符合您描述的需求,here 是一个工作示例。它在 21 以上内部使用 JobScheduler,在 21 以下使用 Google 的一些专有技术。您可以安排每隔一小时运行一次定期任务,同时添加一个前提条件,即您的任务需要互联网才能运行。然后系统将确定运行任务的适当时间。像这样的,
PeriodicTask periodicTask = new PeriodicTask.Builder()
.setService(YOUR_SERVICE) //should extend GcmTaskService
.setPeriod(TimeUnit.HOURS.toSeconds(1))
.setFlex(TimeUnit.MINUTES.toSeconds(30))
.setTag("UpdateDB")
.setRequiredNetwork(PeriodicTask.NETWORK_STATE_CONNECTED)
.setPersisted(true)
.build();
here 是一篇很好的文章,解释了 GCMNetwork Manager 提供的不同功能
【讨论】:
使用背景Service 并在您的Service 类中使用CountDownTimer。并在CountDownTimer中设置1小时的间隔
【讨论】: