使用共享偏好设置检查新的一天

时间:2017-10-03 04:24:13

标签: java android sharedpreferences

我创建了一个应用。我在我的应用程序中放了一个按钮。当我点击按钮时,点击时间将保存到共享首选项。

private void saveClickTime() {
        String str = new SimpleDateFormat("yyyyMMddHHmmss").format(new Date());
        SharedPreferences.Editor localEditor = this.sp.edit();
        localEditor.putString("mTime", str);
        localEditor.commit();
    }

现在我想在新的一天开始时创建方法isTimeToClick()。就像今天是10月3日。将于10月4日12点开始。我希望在新的一天开始时,方法将开始。

 private boolean isTimeToClick() {
        SimpleDateFormat localSimpleDateFormat = new SimpleDateFormat("yyyyMMddHHmmss");
        try
        {
            // here I have to call the method but I don't know what should I use. can anyone help me?
        }
        catch (Exception localException) {}
        return false;
    }

1 个答案:

答案 0 :(得分:0)

您可以以毫秒为单位存储时间并检索它以从共享首选项创建日期实例并比较日期。

private void saveClickTime() {
    sp.edit().putLong("mTime", System.currentTimeMillis()).apply();
}

private boolean isTimeToClick() {
    Date oldDate = new Date(sp.getLong("mTime", System.currentTimeMillis()));
    GregorianCalendar oldCalendar = new GregorianCalendar();
    oldCalendar.setTime(oldDate);
    Calendar newCalendar = new GregorianCalendar();
    return newCalendar.get(Calendar.DATE) != oldCalendar.get(Calendar.DATE) ||
            newCalendar.get(Calendar.MONTH) != oldCalendar.get(Calendar.MONTH) ||
            newCalendar.get(Calendar.YEAR) != oldCalendar.get(Calendar.YEAR);
}