Flutter не удается получить данные из GetStorage в функции верхнего уровня

#flutter #dart #flutter-getx

Вопрос:

Я пытаюсь создать фоновую задачу с помощью пакета workmanager, но когда я пытаюсь получить данные из формы GetStorage, результат работы был успешным, но результат getStorage всегда равен нулю. Вот мой код функции верхнего уровня в файле notification-service.dart:

 void backgroundTask() {
  Workmanager().executeTask((task, inputData) async {
     var userData = await GetStorage().read('userData');
     print(userData);
     await NotificationService().init();
     return Future.value(true);
  });
} 
 

и вот моя основная функция в файле main.dart:

 void main() async {
  WidgetsFlutterBinding.ensureInitialized();
  await GetStorage.init();
  Workmanager().initialize(backgroundTask, isInDebugMode: true);
  await Workmanager().registerPeriodicTask(
    "01",
    "backgroundTask",
    frequency: Duration(minutes: 15),
  );
  SystemChrome.setPreferredOrientations([DeviceOrientation.portraitUp])
      .then((_) {
    runApp(App());
  });
}
 

вот журнал из консоли отладки:

 D/EGL_emulation( 7849): eglCreateContext: 0x71c0756c8cc0: maj 3 min 0 rcv 3
D/EGL_emulation( 7849): eglCreateContext: 0x71c0756c9be0: maj 3 min 0 rcv 3
D/HostConnection( 7849): HostConnection::get() New Host Connection established 0x71c08565be90, tid 7923
D/HostConnection( 7849): HostComposition ext ANDROID_EMU_CHECKSUM_HELPER_v1 ANDROID_EMU_native_sync_v2 ANDROID_EMU_native_sync_v3 ANDROID_EMU_native_sync_v4 ANDROID_EMU_dma_v1 ANDROID_EMU_direct_mem ANDROID_EMU_host_composition_v1 ANDROID_EMU_host_composition_v2 ANDROID_EMU_YUV_Cache ANDROID_EMU_async_unmap_buffer GL_OES_EGL_image_external_essl3 GL_OES_vertex_array_object GL_KHR_texture_compression_astc_ldr ANDROID_EMU_host_side_tracing ANDROID_EMU_async_frame_commands ANDROID_EMU_gles_max_version_3_0
D/EGL_emulation( 7849): eglMakeCurrent: 0x71c0756c9be0: ver 3 0 (tinfo 0x71c0156d06a0) (first time)
D/HostConnection( 7849): HostConnection::get() New Host Connection established 0x71c08565a810, tid 7922
D/HostConnection( 7849): HostComposition ext ANDROID_EMU_CHECKSUM_HELPER_v1 ANDROID_EMU_native_sync_v2 ANDROID_EMU_native_sync_v3 ANDROID_EMU_native_sync_v4 ANDROID_EMU_dma_v1 ANDROID_EMU_direct_mem ANDROID_EMU_host_composition_v1 ANDROID_EMU_host_composition_v2 ANDROID_EMU_YUV_Cache ANDROID_EMU_async_unmap_buffer GL_OES_EGL_image_external_essl3 GL_OES_vertex_array_object GL_KHR_texture_compression_astc_ldr ANDROID_EMU_host_side_tracing ANDROID_EMU_async_frame_commands ANDROID_EMU_gles_max_version_3_0
D/EGL_emulation( 7849): eglMakeCurrent: 0x71c0756c8cc0: ver 3 0 (tinfo 0x71c0156e1380) (first time)
D/EGL_emulation( 7849): eglCreateContext: 0x71c0756ca210: maj 3 min 0 rcv 3
I/flutter ( 7849): null
I/WM-WorkerWrapper( 7849): Worker result SUCCESS for Work [ id=d9d93197-a676-4d6c-813a-7884ccf6d05c, tags={ be.tramckrijte.workmanager.BackgroundWorker } ]
E/libEGL  ( 7849): call to OpenGL ES API with no current context (logged once per thread)
 

есть какое-нибудь решение?