在android中每隔30分钟与服务器同步?

时间:2017-11-02 05:08:55

标签: android android-background

我希望Android应用每30(或任何间隔)分钟与服务器同步,并通知用户是否有任何更改。

我已经尝试[JobScheduler][1]了。似乎[JobScheduler][1]以优化的间隔运行事件而不是以精确的间隔运行。有人建议[AlarmManager][1],但我认为这也行不通 - 它还会检查电池优化。 (setExactTimesetExactAndAllowWhileIdle也在优化的时间运行)

我希望应用程序能够以确切的间隔与服务器同步,无论如何。

1 个答案:

答案 0 :(得分:0)

您可以使用计时器

Timer timer = new Timer();

然后扩展计时器任务

class SyncData extends TimerTask {


   public void run() {
       //call after every 30min
   }
}

然后使用一些更新间隔将新任务添加到Timer

TimerTask syncData = new SyncData();
timer.scheduleAtFixedRate(syncData,1000*10);//this will run after every 10 sec

注意:只有当您的应用程序处于后台时,如果您希望在应用程序处于后台时调用api,而不是请用户服务 AlaramManager ,它才会起作用。< / p>