首先,我想存储用户午餐我的应用程序的当前时间。然后,当用户再次启动我的应用程序时,我还将获得当前时间并将当前时间与先前存储的时间进行比较,并检查时差是否变为“一天”。因为时差是否变为“一天”然后我会在我的应用程序中执行某些操作 但是我可以理解该怎么做。
我知道
Long tsLong = System.currentTimeMillis();
String ts = tsLong.toString();
获取当前时间。这实际上是什么“ currentTimeMillis” ???但是我不明白我怎么能达到我的总体目标。请谁能建议我如何解决这个问题?
如果您想存储用户上次打开应用程序的时间,则可能需要使用SharedPreferences并存储用户打开应用程序的时间,然后将存储的值与下次打开应用程序的时间进行比较,检查是否时差大于1天。
首先,回答您的实际问题:System.currentTimeMillis()返回自“历元”(1970年1月1日00:00:00)以来经过的毫秒数。它在文档中。
现在,为了存储用户打开您的应用程序的时间,您应该在主要活动的onCreate(或您的应用程序的onCreate,具体取决于您的情况)上执行以下操作:
SharedPreferences preferences = getSharedPreferences(PREF_FILENAME, MODE_PRIVATE);
long openTime = System.currentTimeMillis();
preferences.edit()
.putLong(OPEN_TIME_KEY, openTime)
.commit();
最后,为了检查应用程序的最后一次打开与当前打开之间的时差(您应该在第一个代码段之前执行此操作,而不是在读取之前覆盖存储的首选项):
long day = 24 * 60 * 60 * 1000; // Milliseconds in a day. Define this as a constant
SharedPreferences preferences = getSharedPreferences(PREF_FILENAME, MODE_PRIVATE);
long openTime = System.currentTimeMillis();
long lastTime = preferences.getLong(OPEN_TIME_KEY, 0);
if ((openTime - lastTime) > day) {
// do your thing here
}
您显然应该在两个代码片段(openTime和首选项)上重用一些变量,但是无论如何我都是这样做的,以便您理解概念并自己实现,而不仅仅是复制代码。无论如何,我认为可以完成工作,祝您好运!
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句