如何将数据从 workmananger 的隔离区发送到主隔离区?

How to send data to the main isolate from workmananger's isolate?

我的问题是无法从多个 isolate 中打开 flutter Hive。因此,我希望将 workmananger 任务中获取的数据发送到打开配置单元框的主要隔离区,并在那里进行修改以避免损坏它。我应该考虑应用程序何时处于活动状态以及何时不存在 => 例如,当应用程序不存在时,我直接编辑配置单元文件,因为它只会在 workmanager isolate 中打开,而如果应用程序不存在,我将数据发送到主隔离并编辑配置单元文件。我的问题是我不知道如何在 workmanager 任务中跟踪生命周期,也不知道如何将数据发送到主隔离区。该问题的任何解决方法或解决方案或如何对上述代码进行编码?提前谢谢你。

经过一番研究,解决方案如下:

首先你在主隔离区的初始化上注册一个端口,如下所示:

void listenToUpdatesFromWorkManager(String name) { var port = ReceivePort(); IsolateNameServer.registerPortWithName(port.sendPort, name); }

你给它一个唯一的名字,以便从任何其他打开的分离物中识别它,如下所示:

SendPort sendPort = IsolateNameServer.lookupPortByName(name);