繁体   English   中英

如何每天在特定时间触发功能

[英]How to trigger the function every day at a specific time

我正在开发和android应用程序。 这个程序有几个活动。 无论应用程序显示什么活动,我都需要每天凌晨2点在服务器上执行查询。 我目前正在使用Timer和TimerTask,如下所示:

Timer timer = new Timer();

TimerTask timerTask = new TimerTask() {
            public void run() {
                makePostToServer()
            }
        };

timer.scheduleAtFixedRate(timerTask, getDate(), 1000 * 60 * 60 * 24); // 24 h


private Date getDate() {
        Calendar cal = Calendar.getInstance();
        cal.add(Calendar.DATE, 1);
        cal.set(Calendar.HOUR_OF_DAY, 2);
        cal.set(Calendar.MINUTE, 0);
        cal.set(Calendar.SECOND, 0);

        return cal.getTime();

}

是否有可能由于某种原因在应用程序启动时启动的计时器停止工作? 因为服务器日志并不总是包含有关已执行查询的信息。 好像没有发生。
也许有更好的方法每天在2点调用函数。
最好的祝福

代替此工作经理来满足您的需求,这是非常有效的。 在这种情况下,您可以使用定期工作管理器

查看此以供参考。 https://developer.android.com/topic/libraries/architecture/workmanager

快乐编码!

有几种API可用于安排Android中的任务:

  1. 警报管理器
  2. 工作计划
  3. GCM网络经理
  4. Firebase作业分派器
  5. 同步适配器

您可以轻松找到很多样本。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM