mainMethod中的逻辑:
String todaydate=DateUtils.todayDateinToString();
if ( !todaydate.equals(localdate.get())) {
long currentMillis = System.currentTimeMillis();
if(currentMillis >= appProperties.nextCallMillis.get() ) {
localdate.set(currentMillis + 86400000);
callmethod();
}
appProperties.barCodeCallDate.set(DateUtils.todayDateinToString());
}
else{
appProperties.nextCallMillis.clear();
}
DateUtils.java
public static String todayDateinToString() {
String today = null;
try {
Date date = Calendar.getInstance().getTime();
// Display a date in day, month, year format
DateFormat formatter = new SimpleDateFormat("dd/MM/yyyy");
today = formatter.format(date);
System.out.println("Today : " + today);
} catch (Exception e) {
e.printStackTrace();
}
return today;
}
我编写了这段代码,每天间隔24小时执行一次。
实际:每天只执行一次。
预期:应在每天24小时后执行。例如,我今天在上午11点调用方法,那么它不应在明天上午11点之前调用。应该在上午11点以后打电话。如果我尝试在后天致电,则应在上午11点之前致电,因为下一次通话的区别是24小时。
请建议我我在本地存储两个日期和nextCallMillis。