我正在开发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();
}
是否有可能由于某种原因在应用程序启动时启动的Timer停止工作?
因为服务器日志并不总是包含有关已执行查询的信息。好像没有发生。
也许每天都有一种更好的方法来调用函数。
最好的问候
答案 0 :(得分:0)
代替此用途的工作经理非常有效。在这种情况下,您可以使用定期工作管理器。
查看此内容以供参考。 https://developer.android.com/topic/libraries/architecture/workmanager
快乐编码!
答案 1 :(得分:0)
在Android中有几种API可用于安排任务:
您可以轻松找到很多样本。