如何在 flutter 应用程序中的特定日期和时间更新 sqflite 数据库中的 table 条记录?(Android)
How to update table records in sqflite database on a specific date and time in a flutter app?(Android)
我为 Android 开发了一个 flutter 移动应用程序。它有一个 'Payment' 数据 table。我需要在 1 月 31 日 23:59 更新它。我该怎么做?
在应用程序的主 class 中调用函数不是 suitable 因为如果应用程序在我检查的那个特定时间没有打开,数据库将不会更新。所以在我看来,这应该使用自动更新功能来处理。
我可以想到两个解决方案:
第一个:
如果 Payment table 的数据仅在您的应用中使用,则您无需在同一时间更新它。您可以只编写一个 if
代码,在应用程序打开时运行(例如在初始屏幕中),以检查是否过了所需的时间(1 月 31 日 23 点 59 分)。如果那个时候过去了,那就做你想做的事吧。
其次:可以用一个workmanager。这是一个在后台运行您的功能的插件。它具有满足您需要的 registerOneOffTask
功能。
void main() {
Workmanager.initialize(
callbackDispatcher, // The top level function, aka callbackDispatcher
isInDebugMode: true // If enabled it will post a notification whenever the task is running. Handy for debugging tasks
);
Workmanager.registerOneOffTask("1", "simpleTask"); //Android only (see below)
runApp(MyApp());
}
我为 Android 开发了一个 flutter 移动应用程序。它有一个 'Payment' 数据 table。我需要在 1 月 31 日 23:59 更新它。我该怎么做?
在应用程序的主 class 中调用函数不是 suitable 因为如果应用程序在我检查的那个特定时间没有打开,数据库将不会更新。所以在我看来,这应该使用自动更新功能来处理。
我可以想到两个解决方案:
第一个:
如果 Payment table 的数据仅在您的应用中使用,则您无需在同一时间更新它。您可以只编写一个 if
代码,在应用程序打开时运行(例如在初始屏幕中),以检查是否过了所需的时间(1 月 31 日 23 点 59 分)。如果那个时候过去了,那就做你想做的事吧。
其次:可以用一个workmanager。这是一个在后台运行您的功能的插件。它具有满足您需要的 registerOneOffTask
功能。
void main() {
Workmanager.initialize(
callbackDispatcher, // The top level function, aka callbackDispatcher
isInDebugMode: true // If enabled it will post a notification whenever the task is running. Handy for debugging tasks
);
Workmanager.registerOneOffTask("1", "simpleTask"); //Android only (see below)
runApp(MyApp());
}