Java 颤振FCM后台呼叫平台特定代码

Java 颤振FCM后台呼叫平台特定代码,java,android,flutter,firebase-cloud-messaging,background-process,Java,Android,Flutter,Firebase Cloud Messaging,Background Process,FCM后台处理程序无法调用在MainActivity.java中自定义注册的特定于平台的代码(遵循)。有什么办法可以让这一切顺利进行吗?我对flutter、java和android开发还不熟悉,我的搜索已经进入了死胡同 我是否可以强制打开设置了标志的应用程序,检查该标志,然后调用该方法 是否有一些事件/消息传递系统可以在后台订阅和发送 以下代码产生以下输出: I/flutter ( 6448): BACKGROUND_HANDLER:: I/flutter ( 6448): TRIGGERING

FCM后台处理程序无法调用在
MainActivity.java
中自定义注册的特定于平台的代码(遵循)。有什么办法可以让这一切顺利进行吗?我对flutter、java和android开发还不熟悉,我的搜索已经进入了死胡同

我是否可以强制打开设置了标志的应用程序,检查该标志,然后调用该方法

是否有一些事件/消息传递系统可以在后台订阅和发送

以下代码产生以下输出:

I/flutter ( 6448): BACKGROUND_HANDLER::
I/flutter ( 6448): TRIGGERING ALARM::BEFORE
I/flutter ( 6448): TRIGGERING ALARM::AFTER
E/flutter ( 6448): [ERROR:flutter/lib/ui/ui_dart_state.cc(148)] Unhandled Exception: MissingPluginException(No implementation found for method setAlarm on channel com.hybridalert.flutter_hybrid/alarm)
E/flutter ( 6448): #0      MethodChannel.invokeMethod (package:flutter/src/services/platform_channel.dart:314:7)
E/flutter ( 6448): <asynchronous suspension>
E/flutter ( 6448): #1      triggerAlarm (package:flutter_hybrid_alert/src/ui/home.dart:30:37)
E/flutter ( 6448): <asynchronous suspension>
E/flutter ( 6448): #2      backgroundHandle (package:flutter_hybrid_alert/src/ui/home.dart:67:5)
E/flutter ( 6448): #3      _fcmSetupBackgroundChannel.<anonymous closure> (package:firebase_messaging/firebase_messaging.dart:38:30)
E/flutter ( 6448): #4      _AsyncAwaitCompleter.start (dart:async-patch/async_patch.dart:43:6)
E/flutter ( 6448): #5      _fcmSetupBackgroundChannel.<anonymous closure> (package:firebase_messaging/firebase_messaging.dart:31:42)
E/flutter ( 6448): #6      MethodChannel._handleAsMethodCall (package:flutter/src/services/platform_channel.dart:397:55)
E/flutter ( 6448): #7      _AsyncAwaitCompleter.start (dart:async-patch/async_patch.dart:43:6)
E/flutter ( 6448): #8      MethodChannel._handleAsMethodCall (package:flutter/src/services/platform_channel.dart:394:39)
E/flutter ( 6448): #9      MethodChannel.setMethodCallHandler.<anonymous closure> (package:flutter/src/services/platform_channel.dart:365:54)
E/flutter ( 6448): #10     _DefaultBinaryMessenger.handlePlatformMessage (package:flutter/src/services/binary_messenger.dart:110:33)
E/flutter ( 6448): #11     _AsyncAwaitCompleter.start (dart:async-patch/async_patch.dart:43:6)
E/flutter ( 6448): #12     _DefaultBinaryMessenger.handlePlatformMessage (package:flutter/src/services/binary_messenger.dart:101:37)
E/flutter ( 6448): #13     _invoke3.<anonymous closure> (dart:ui/hooks.dart:293:15)
E/flutter ( 6448): #14     _rootRun (dart:async/zone.dart:1124:13)
E/flutter ( 6448): #15     _CustomZone.run (dart:async/zone.dart:1021:19)
E/flutter ( 6448): #16     _CustomZone.runGuarded (dart:async/zone.dart:923:7)
E/flutter ( 6448): #17     _invoke3 (dart:ui/hooks.dart:292:10)
E/flutter ( 6448): #18     _dispatchPlatformMessage (dart:ui/hooks.dart:154:5)
E/flutter ( 6448): 

如果您已完成中的所有步骤。然后将backgroundhandler函数放在main()之外。或者,您可以创建一个具有静态属性的类,如:

class BackgroundHandler {
  static Future<dynamic> backgroundHandler(Map<String, dynamic> message)  {
    if (message.containsKey('data')) {
      final dynamic data = message['data'];

    }

    if (message.containsKey('notification')) {
      final dynamic notification = message['notification'];
    }
  } 
}
类背景处理程序{
静态Future backgroundHandler(映射消息){
if(message.containsKey('data')){
最终动态数据=消息['data'];
}
if(message.containsKey('notification')){
最终动态通知=消息['notification'];
}
} 
}

检查。同时检查使用哪种服务注册插件。@AbhayKoradiya添加
“单击”操作的第一个建议是:“向数据有效负载添加“颤振通知”
不会触发
onMessage
onResume
,就像多个资源所说的那样。。。我不知道我是否做错了,也不知道我做错了什么。你能解释一下你建议的第二个链接(地理围栏)中发生了什么吗?检查。小心它显示在第4点。@AbhayKoradiya我不确定你的意思。在重新检查文档时,它似乎确认了这不是一个符合我所寻找的解决方案。除非我遗漏了什么,在这种情况下,请告诉我,而不是含糊其辞。我需要的应用程序打开或移动到前台没有任何用户交互。