我想在我的应用程序中实现每日问题功能。如果用户每天使用该功能一次,他将无法访问该功能,直到当天发生变化。我可以在首次访问功能时获取,但我如何才能检查这个日期时间以备下次使用。
我怎样才能得到日期是否更改。
提前致谢。
我想在我的应用程序中实现每日问题功能。如果用户每天使用该功能一次,他将无法访问该功能,直到当天发生变化。我可以在首次访问功能时获取,但我如何才能检查这个日期时间以备下次使用。
我怎样才能得到日期是否更改。
提前致谢。
您可以结合使用时间戳、共享首选项和使用isToday(long when)
位于android.text.format.DateUtils
代码示例:
SharedPreferences userDetails = context.getSharedPreferences("userdetails", MODE_PRIVATE);
long sharedPreferenceTimestamp= userDetails.getLong("lastquestiontime", 0); // 0: 1/1/1970
if(!DateUtils.isToday(sharedPreferenceTimestamp)) {
// --> show the Question HERE! <--
// update the value of last question show!
SharedPreferences.Editor editor = userDetails.edit();
editor.putLong("lastquestiontime", System.currentTimeMillis()); // value to store
editor.commit();
}
我更喜欢使用 unix 时间来计算日期。unix 时间是自 1970 年 1 月 1 日格林威治标准时间午夜以来的毫秒数。您可以通过调用 Date.getTime() 方法获取此数字。
因为您需要经过的天数,所以您应该将此数字除以 24*60*60*1000。之后,您无需执行任何其他操作,只需比较两个数字即可。如果数字相同,则日期不会改变。
您不能使用共享首选项并添加用户名和日期作为键。然后,当您下次检索用户名时,您可以检索该用户的日期并进行比较。