Java 颤振-无法将MethodChannel与Firebase onBackgroundMessage一起使用
我在应用程序关闭时尝试打开android活动时失败。在下面的代码中可以看到,当我从firebase收到数据通知时,当应用程序处于后台时,我应该使用MethodChannel打开一个活动来访问java,但我得到了以下错误: 在channel com.example.service/start上未找到方法openActivity的实现 Application.javaJava 颤振-无法将MethodChannel与Firebase onBackgroundMessage一起使用,java,android,android-studio,flutter,dart,Java,Android,Android Studio,Flutter,Dart,我在应用程序关闭时尝试打开android活动时失败。在下面的代码中可以看到,当我从firebase收到数据通知时,当应用程序处于后台时,我应该使用MethodChannel打开一个活动来访问java,但我得到了以下错误: 在channel com.example.service/start上未找到方法openActivity的实现 Application.java package com.example.mobile; import io.flutter.app.FlutterApplicat
package com.example.mobile;
import io.flutter.app.FlutterApplication;
import io.flutter.plugin.common.PluginRegistry;
import io.flutter.plugin.common.PluginRegistry.PluginRegistrantCallback;
import io.flutter.plugins.firebasemessaging.FirebaseMessagingPlugin;
import io.flutter.plugins.firebasemessaging.FlutterFirebaseMessagingService;
public class Application extends FlutterApplication implements PluginRegistrantCallback {
@Override
public void onCreate() {
super.onCreate();
FlutterFirebaseMessagingService.setPluginRegistrant(this);
}
@Override
public void registerWith(PluginRegistry registry) {
FirebaseMessagingPlugin.registerWith(registry.registrarFor("io.flutter.plugins.firebasemessaging.FirebaseMessagingPlugin"));
}
}
AndroidManifest.xml
<application
android:name="com.example.mobile.Application"
android:label="mobile"
android:icon="@mipmap/ic_launcher">
主飞镖
_firebaseMessaging.configure(
onMessage: (message) async {
//
},
onLaunch: (message) {
//
},
onResume: (message) {
//
},
onBackgroundMessage: myBackgroundMessageHandler,
);
Future<dynamic> myBackgroundMessageHandler(Map<String, dynamic> message) async {
MethodChannel channel = new MethodChannel("com.example.service/start");
if (message.containsKey('data')) {
final dynamic data = message['data'];
var open = await channel.invokeMethod("openActivity");
}
}
\u firebaseMessaging.configure(
onMessage:(消息)异步{
//
},
onLaunch:(消息){
//
},
onResume:(消息){
//
},
onBackgroundMessage:myBackgroundMessageHandler,
);
未来myBackgroundMessageHandler(映射消息)异步{
MethodChannel=newMethodChannel(“com.example.service/start”);
if(message.containsKey('data')){
最终动态数据=消息['data'];
var open=wait channel.invokeMethod(“openActivity”);
}
}
我哪里出了问题,如何才能使其正常工作?在您的AndroidManifest.xml文件中,android:name必须是android:name=“.Application”,并确保MainActivity.java和Application.java位于同一文件夹中您解决了这个问题吗?我也有同样的问题。谢谢
_firebaseMessaging.configure(
onMessage: (message) async {
//
},
onLaunch: (message) {
//
},
onResume: (message) {
//
},
onBackgroundMessage: myBackgroundMessageHandler,
);
Future<dynamic> myBackgroundMessageHandler(Map<String, dynamic> message) async {
MethodChannel channel = new MethodChannel("com.example.service/start");
if (message.containsKey('data')) {
final dynamic data = message['data'];
var open = await channel.invokeMethod("openActivity");
}
}