【发布时间】:2021-06-02 14:51:29
【问题描述】:
我想每天午夜将dailyTasks 字段重置为0。我正在使用 Get Storage 插件保留该字段。数据正在持久化,但不会重置。
代码如下:
class DataController with GetxController {
@override
void onInit() {
getDailyTask();
super.onInit();
}
int dailyTasks;
// DateTime
DateTime now = DateTime.now();
void dailyTaskIncrement() {
dailyReads++;
dataBox.write('dailyTasks', dailyTasks);
update();
}
void getDailyTask() {
dailyTasks = dataBox.read('dailyTasks');
if (now == 12) {
dailyTasks = 0;
}
update();
}
}
// For User Loren
int dailyTasks;
// DateTime
DateTime now = DateTime.now();
//
void dailyTasksIncrement() {
dailyTasks++;
dataBox.write('dailyTasks', dailyTasks);
update();
}
// Stores time to storage
void _storeAppStartupTime() => dataBox.write('startupTime', now.toString());
//
void getDailyTasks() {
final previousStartupTime = DateTime.parse(dataBox.read('startupTime'));
final nextMidnight = DateTime(
previousStartupTime.year,
previousStartupTime.month,
previousStartupTime.day + 1); // returns exactly the next midnight
if (now.isAfter(nextMidnight)) {
dailyTasks = dataBox.read('dailyTasks');
dailyTasks = 0;
} else {
dailyTasks = dataBox.read('dailyTasks');
dailyTasks == null ? dailyTasks = 0 : dailyTasks;
}
update();
}
}
【问题讨论】:
-
你需要使用后台服务来做到这一点。
标签: flutter dart flutter-getx