【问题标题】:How to set timer for 1 hour to check network every 1 hour?如何将定时器设置为 1 小时以每 1 小时检查一次网络?
【发布时间】:2016-09-16 04:57:27
【问题描述】:

我想每 1 小时检查一次网络以将数据从本地存储更新到数据库,但不知道使用哪个计时器或警报。如果您有任何代码,请与我分享,谢谢。

【问题讨论】:

  • 尝试创建intent服务来检查互连是否可用。如果连接可用,则通知接收者并在后台更新数据。

标签: android timer alarmmanager


【解决方案1】:

您可以使用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 提供的不同功能

【讨论】:

    【解决方案2】:

    使用背景Service 并在您的Service 类中使用CountDownTimer。并在CountDownTimer中设置1小时的间隔

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-04-26
      • 1970-01-01
      • 1970-01-01
      • 2017-10-14
      • 2023-04-06
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多