【问题标题】:How to store data after 24 hours in flutter? / How to update UI after some time when app is closed/killed in flutter?如何在 24 小时后在 flutter 中存储数据/如何在应用程序在 flutter 中关闭/杀死一段时间后更新 UI?
【发布时间】:2022-11-25 05:16:47
【问题描述】:

我正在制作一个应用程序.我想在 24 小时后存储数据并更新应用程序中的 UI。 我试试定时器.periodic()但它不计算应用程序关闭的时间。它仅在应用程序打开时有效。

即使应用程序已关闭,是否可以在特定时间后执行功能?

这是我当前的代码:

void callbackDispatcher() async{
  Workmanager().executeTask((task, inputData) {
    switch(sdDaily){
      case 'StoreDataDaily':
       storeData.storeDailyData();
        break;
      default:
    }
    return Future.value(true);
  });
}
void main() async{
  WidgetsFlutterBinding.ensureInitialized();
  Directory directory = await path_provider.getApplicationDocumentsDirectory();
  print(directory.path);
  Hive.init(directory.path);
  await Hive.initFlutter(directory.path);
  Hive.registerAdapter(UserAdapter());
  Hive.registerAdapter(WaterAdapter());
  Hive.registerAdapter(WeekAdapter());
  Get.put(UserController());
  Get.put(WaterController());
  await Hive.openBox<User>('data');
  await Hive.openBox<Water>('water_data');
  await Hive.openBox<Week>('week_data');
  await notificationPlugin.showNotification();
  await Workmanager().initialize(callbackDispatcher, isInDebugMode: true);
  var uniqueId = DateTime.now().second.toString();
  var userBox = Hive.box<User>('data');
  if(userBox.get(0)?.status == 1){
    await Workmanager().registerOneOffTask(uniqueId, sdDaily,);
  }

  runApp(const MyApp());
}

【问题讨论】:

    标签: flutter dart hive flutter-hive


    【解决方案1】:

    您可以使用:flutter_background_service. 来执行后台服务,它还会帮助您在稍后实际要存储该数据时发送自定义通知。

    【讨论】:

      【解决方案2】:

      您可以使用 firebase 云功能来执行计划任务或任何您想执行的操作,即使应用程序已关闭或被终止。

      【讨论】:

        猜你喜欢
        • 2021-04-10
        • 2018-12-27
        • 2019-12-02
        • 2020-04-16
        • 1970-01-01
        • 1970-01-01
        • 2022-09-24
        • 2022-01-03
        • 2020-08-02
        相关资源
        最近更新 更多