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