Flutter: MissingPluginException (реализация метода на канале не найдена) вызывает собственные методы (MainActivity) в фоAndroid

Форум для тех, кто программирует под Android
Ответить Пред. темаСлед. тема
Anonymous
 Flutter: MissingPluginException (реализация метода на канале не найдена) вызывает собственные методы (MainActivity) в фо

Сообщение Anonymous »


Я хочу вызвать собственный метод, который я создал в MainActivity. Пока приложение находится на переднем плане, все работает нормально, но когда приложение находится в фоновом режиме, оно даже не переходит в MainActivity. Так он и там не регистрируется. Я вызываю метод следующим образом: MethodChannel('de.my').invokeMethod("getCurrentNotificationGroups"); ..и здесь также появляется сообщение об ошибке Я получаю следующее сообщение об ошибке: Уведомление FlutterFire: в вашем обработчике фоновых сообщений произошла ошибка: **MissingPluginException (реализация метода **getCurrentNotificationGroups на канале de.my не найдена) Есть ли у кого-нибудь из вас опыт вызова собственных методов (MainActivity) в фоновом режиме?

Я заметил в Интернете: проблема в том, что если ваше приложение начинает выполнять код, пока оно остановлено, как это происходит с onBackgroundMessageHandler Firebase, то MainActivity не вызывается, и поэтому ваш MethodChannel не существует.

Я думаю, что это проблема, но я не знаю, как ее решить. Есть ли у кого-нибудь из вас идеи?

Это мой фоновый обработчик, который запускается

FirebaseMessaging.onBackgroundMessage(firebaseMessagingBackgroundHandler);

@pragma('vm:entry-point') Future firebaseMessagingBackgroundHandler (сообщение RemoteMessage) async { ВиджетыFlutterBinding.ensureInitialized(); дождитесь AppNotification.convertFirebaseToLocalNotification(сообщение); } Это в моем MainActivity.java

@Override public void configureFlutterEngine(@NonNull FlutterEngine flutterEngine) { GeneratedPluginRegistrant.registerWith(flutterEngine); новый MethodChannel(flutterEngine.getDartExecutor().getBinaryMessenger(), "de.my") .setMethodCallHandler((methodCall, результат) -> { Log.d("MethodChannel", "Поступил вызов метода: " + методCall.method); переключатель (methodCall.method) { случай "clearNotifications": { ОчиститьУведомления(); результат.успех(истина); перерыв; } случай "getCurrentNotificationGroups": { List NotificationGroups = getCurrentNotificationGroups(); result.success(notificationGroups); перерыв; } по умолчанию: { результат.notImplemented(); перерыв; } } }); } Я удалил и переустановил, очистил флаттер, но ничего не помогло Моя цель состоит в том, чтобы этот метод также вызывался в фоновом режиме на Android, потому что на переднем плане все работает нормально. Я перерыл Интернет и перепробовал все возможное, но ничего не помогло.
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Android»