#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)
есть какое-нибудь решение?