gpt4 book ai didi

android - 每天只更新一次

转载 作者:行者123 更新时间:2023-11-29 14:20:00 25 4
gpt4 key购买 nike

我的 Android 应用程序中有些东西需要每天更新一次。

我认为这很简单,但我不知道我需要用什么格式来格式化日期和时间(如果需要时间)以及如何检查今天是否已完成更新(今天在 00:01am 之间)和用户本地时间下午 23:59)。如果今天已经完成更新,则不应进行更新。

这是我知道怎么做的:

  • 在 SharedPreferences 中保存上次更新日期(但我如何获得字符串,我不知道)
  • 从 SharedPreferences 获取东西(但我不知道如何比较字符串格式的日期)

最佳答案

选择什么格式无关紧要。这只是重新计算的问题。

我建议使用自纪元以来的毫秒数,因为所有系统调用都使用它,因此您使用它会更容易。

因为 1000 毫秒是 1 秒,所以很容易计算出 1000*60*60*24 等于一天(24 小时)。因此,如果 storedMillis 大于 NOW - 1000*60*60*24,(并且 NOWSystem.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
}

编辑

I am interested in doing it when the app is first opened for the current day, even if the last update was done 10 minutes ago.

问题在于如何获得合适的毫秒数进行比较。将上面代码中的 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();

哪个可以解决问题。

关于android - 每天只更新一次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13514907/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com