颤振.在互联网不稳定的情况下,如何更好地组织与服务器的交换?



用户在应用程序中输入数据。这些数据应该被发送到服务器。但用户工作的地方,互联网并不总是可用的。因此,当设备离线时,数据必须存储在本地。

一旦因特网出现,数据就必须被发送到服务器,即使应用程序关闭。

为了不耗尽设备的电池,组织这样一个算法的最佳方法是什么?

您可以使用workmanager包。根据flutter文档,它支持持久的后台处理,通过应用程序重启和系统重启来保持任务计划。

在这个包中,你可以这样使用:

Workmanager().registerOneOffTask(
"task-identifier",
simpleTaskKey, // Ignored on iOS
initialDelay: Duration(minutes: 30),
constraints: Constraints(
// connected or metered mark the task as requiring internet
networkType: NetworkType.connected,
// require external power
requiresCharging: true,
),
inputData: ... // fully supported
);

constraints属性可用于指定函数何时触发。

这篇博客可能会帮助你了解哪种是最好的节省电池的方法。