如何使计数器每天只添加一次(android)?

时间:2014-03-06 00:08:12

标签: java android

您好我已经制作了Android应用程序,允许用户将应用程序上拍摄的照片上传到Facebook或让他们将照片保存到手机但我想添加“分数”。

因此,如果有人上传或保存了一张照片,他们会得到一个观点,但我想将每天获得的积分限制在一点,我不知道我该怎么做。

1 个答案:

答案 0 :(得分:5)

您可以拥有一个SharedPreference值来保存最后一张照片保存时间戳,以毫秒为单位。然后,每当用户保存照片时,检查偏好值,如果今天不做,则不做任何事情,如果是其他日,则将分数添加到用户并将偏好值更新为新时间戳。

以下是Joda DateTime的代码结构。

public void onSavePhoto() {
    SharedPreferences settings = getSharedPreferences(PREFS_NAME, 0);
    long lastSaveTime = settings.getLong("last_save", 0);
    int lastDay = new DateTime(lastSaveTime).getDayOfYear();
    int today = DateTime.now().getDayOfYear();

    if (lastDay < today) {
        //add score
        addScore();
        //update preference value
        SharedPreferences.Editor editor = settings.edit();
        editor.putLong("last_save", today);
    }
}