4

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

4

1 回答 1

1

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

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

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

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

SendPort sendPort = IsolateNameServer.lookupPortByName(name);

于 2021-08-22T16:53:53.983 回答