全局创建并在函数List<String> mainList
中添加一项。main()
但是在Workmanager.executeTask的回调里面mainList的lenth还是0,甚至mainList的hashCode也不一样。
- 为什么会这样?
- 如何将 mainList 设为 Singleton?
- 尝试打印
Isolate.current.debugName
,它始终是“主要的”。
List<String> mainList=[];
void callbackDispatcher() {
Workmanager.executeTask((task, inputData) {
print("mainList.length=${mainList.length}"); // always length is 0
print("Isolate.current.debugName = ${Isolate.current.debugName}");
return Future.value(true);
});
}
void main() {
Workmanager.initialize(
callbackDispatcher,
isInDebugMode: true,
);
mainList.add("String1");
print("mainList.length=${mainList.length}"); // length is 1
print("Isolate.current.debugName = ${Isolate.current.debugName}");
Workmanager.registerPeriodicTask("1", "simpleTask");
runApp(MyApp());
}