Android,每天重置一个值

时间:2013-05-17 22:33:32

标签: java android reset

我正在开发一个在时间块(pomodoros)工作的计时器应用程序,我想有一个变量来跟踪每天传递的块数,所以它在同一天内继续计数但是回到第二天零。

我正在考虑通过在更新此值时保存“最后记录日”来实现此功能,并且每次程序启动时,请检查当前日期并采取相应措施。所以我有:

    public void saveDailyPomodoros() {
    SharedPreferences sharedPrefs = PreferenceManager.getDefaultSharedPreferences(this);
    int currentDay = Calendar.getInstance().get(Calendar.DAY_OF_YEAR);
    sharedPrefs.edit().putInt("dailyPomodoros", dailyPomodoros).commit();
    sharedPrefs.edit().putInt("lastRecordedDay", currentDay).commit();
    showDailyPomodoros.setText(String.valueOf(dailyPomodoros));
}

保存值(我在更改时调用此函数)和

    public void updateSettings() {
    SharedPreferences sharedPrefs = PreferenceManager.getDefaultSharedPreferences(this);
    ...

    int currentDay = Calendar.getInstance().get(Calendar.DAY_OF_YEAR);
    int lastRecordedDay = sharedPrefs.getInt("lastRecordedDay", 0);
    if (currentDay != lastRecordedDay) {
        dailyPomodoros = 0;
        saveDailyPomodoros();
    }
}

在程序开始时和用户退出首选项屏幕时调用。

它在第二种情况下工作正常,但是如果我杀了app / reboot设备它就不起作用,即使正在保存其他首选项(我已经获得了未重置的自定义铃声的共享首选项)。 / p>

我做错了什么?

1 个答案:

答案 0 :(得分:0)

也许您可以尝试为您的应用创建私人偏好设置:

SharedPreferences sharedPrefs = getApplicationContext().getSharedPreferences("SOME_NAME",0);