workmanager 在发布模式下不起作用。 '扑'

问题描述 投票:0回答:0

我使用 workManager 在后台执行任务。

在调试模式下一切都按预期工作,但是当我在发布模式下运行应用程序时它不起作用。

并向我展示这些错误。

我在互联网上搜索了这个问题,我发现我应该把 @pragma('vm:entry-point') 放在 callBAckDispatcher 函数的顶部。

我做到了,但仍然没有工作

知道为什么吗?或任何其他解决方案

这是我的主

void main() async {
  WidgetsBinding widgetsBinding = WidgetsFlutterBinding.ensureInitialized();
  FlutterNativeSplash.preserve(widgetsBinding: widgetsBinding);
  WidgetsFlutterBinding.ensureInitialized();
  await Firebase.initializeApp();
  await Workmanager().initialize(callBAckDispatcher, isInDebugMode: false);
  await getuserinformationfromcach();
  await getCurrentFollowingAndFollowers(currentusername);
  FirebaseMessaging.onBackgroundMessage(background);
  await FirebaseMessaging.instance.subscribeToTopic("admin");
  runApp(MyApp());
}

这是 callBAckDispatcher 函数。

@pragma('vm:entry-point')
callBAckDispatcher() {
  WidgetsFlutterBinding.ensureInitialized();
  Firebase.initializeApp();
  Workmanager().executeTask((taskName, inputData) async {
    if (taskName == "timerchat") {
      int id = inputData!['id'];
      if (await returnUserNameTimer() == await returnUserName()) {
        await sendTimerChat(id, await returnUserName());
      }
    } else if (taskName == "timerpost") {
      int id = inputData!['id'];
      if (await returnUserNameTimer() == await returnUserName()) {
        await sendTimerPost(id, await returnUserName());
      }
    }
    return Future.value(true);
  });
}
flutter android-workmanager
© www.soinside.com 2019 - 2024. All rights reserved.