gpt4 book ai didi

android - 如何手动将消息发送到 FirebaseMessagingService 的实例?

转载 作者:太空狗 更新时间:2023-10-29 13:07:50 27 4
gpt4 key购买 nike

我有一个实现服务的类:

public class myFirebaseMessagingService extends FirebaseMessagingService {

@Override
public void onCreate() {
super.onCreate();
}

@Override
public void onMessageReceived(RemoteMessage remoteMessage) {

}

}

现在从另一个类(class)(实际上是另一个服务)我想调用 onMessageReceived(RemoteMessage remoteMessage) 但我不知道该怎么做..这可能吗?

最佳答案

我遇到了类似的问题。我有两个使用相同 Intent 过滤器的服务。为了解决这个问题,我决定创建第三个服务,它订阅了 Intent 过滤器。在此服务中,我实例化了每个服务并将接收到的消息传递给它们。如果您只是实例化服务,那么问题与 Context 相关,因为您没有它。

检查服务中的所有方法我发现你有一个 protected 方法 attachBaseContext(context); 所以我创建了一个公共(public)方法来设置我的包装服务的基本上下文,如下所示:

public class WrapperService extends FirebaseMessagingService {
public void onMessageReceived(RemoteMessage message) {
Service1 service1 = new Service1(getBaseContext());
service1.onMessageReceived(message);
Service2 = new Service2(getBaseContext());
service2.onMessageReceived(message);
}
}

现在,对于每项服务,我都有这样的内容:

public class Service1 extends FirebaseMessagingService {
public Service1(Context context) {
super.attachBaseContext(context);
}

public void onMessageReceived(RemoteMessage message) {
....

}
}

通过这些更改,我能够使用相同的 Intent 过滤器调用这两个服务。

作为最后的想法,如果您无法访问服务本身,因为它们包含在第三方库中,您应该检查是否有可能从该服务扩展一个类,并按顺序向该类添加一个公共(public)构造函数初始化基本上下文。

关于android - 如何手动将消息发送到 FirebaseMessagingService 的实例?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45360583/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com