gpt4 book ai didi

java - 从 FirebaseMessagingService 类调用 Activity 类方法

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:34:47 26 4
gpt4 key购买 nike

How to call activity class method from fcm service.

我已经尝试过这种方式Calling activity class method from Service class

但在 fcm 服务中 onBind 方法是最终的,所以我们不能覆盖,所以任何其他方式从 fcm 服务调用 Activity 类方法。

引用一些代码如何实现fcm。

public class FCMListenerService extends FirebaseMessagingService {
@Override
public void onMessageReceived(RemoteMessage message) {
}
}

当我的 Activity 正在运行并且收到 fcm 通知时,我想更新代码吗?有什么办法可以处理这个要求吗?

最佳答案

我认为您必须尝试使用​​ BroadcastReceiver。这是从 FCMListenerService 发送消息的方式:

  public class FCMListenerService extends FirebaseMessagingService {

public static final String INTENT_FILTER = "INTENT_FILTER";
@Override
public void onMessageReceived(RemoteMessage message) {
Intent intent = new Intent(INTENT_FILTER);
sendBroadcast(intent);
}
}

然后您可以尝试以这种方式捕获它,在您的 Activity 中使用广播接收器:

private BroadcastReceiver myReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
updateUi();
}
};

不要忘记在您的 Activity 的 onCreate()/onDestroy() 方法中注册/取消注册您的接收器。

onCreate()

registerReceiver(myReceiver, new IntentFilter(FCMListenerService.INTENT_FILTER));

onDestroy()

unregisterReceiver(myReceiver);

关于java - 从 FirebaseMessagingService 类调用 Activity 类方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38781270/

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