与您选择的格式无关.这只是重新计算的问题.
我建议使用epoch以来的毫秒,因为所有系统调用都使用它,所以你更容易使用它.
因为1000毫秒是1秒,很容易发现1000*60*60*24等于一天(24小时).因此,如果storedMillis大于NOW - 1000*60*60*24(并且NOW是System.currentTimeMillis()),那么进行检查还为时过早.如果storedMillis较小,则保存NOW时间戳并进行检查:
long now = System.currentTimeMillis();
long diffMillis = now - lastCheckedMillis;
if( diffMillis >= (3600000 * 24) ) {
// store now (i.e. in shared prefs)
// do the check
} else {
// too early
}
Run Code Online (Sandbox Code Playgroud)
编辑
即使最后一次更新是在10分钟前完成的,我也很乐意在当天首次打开应用程序时这样做.
这就是如何获得适当的毫米来进行比较的问题.long now = System.currentTimeMillis();用以下代码块替换上面的代码:
Calendar cal = Calendar.getInstance();
cal.clear(Calendar.HOUR);
cal.clear(Calendar.HOUR_OF_DAY);
cal.clear(Calendar.MINUTE);
cal.clear(Calendar.SECOND);
cal.clear(Calendar.MILLISECOND);
long now = cal.getTimeInMillis();
Run Code Online (Sandbox Code Playgroud)
这应该做的伎俩.
| 归档时间: |
|
| 查看次数: |
2187 次 |
| 最近记录: |