【问题标题】:How to change view in application after get message from firebase?从firebase获取消息后如何更改应用程序中的视图?
【发布时间】:2018-12-02 08:53:48
【问题描述】:
是否有可能在 onMessageReceived (RemoteMessage remoteMessage) (FirebaseMessagingService) 中收到来自 firebase 的消息后重新加载应用程序的当前视图(如果它正在运行)?例如我已启动 MainActivity,我从 Firebase 收到消息,我想在 MainActivity 中重新加载 ListView。
【问题讨论】:
标签:
android
firebase-cloud-messaging
【解决方案1】:
您可以在 onMessageReceived 中使用LocalBroadcastManager。例如:
Intent bIntent = new Intent("custom-event-name");
bIntent.putExtra("keyAction", "yourPushAction");
LocalBroadcastManager.getInstance(this).sendBroadcast(bIntent);
并且可以在您的活动的 onCreate() 中接收广播,如下所示:
LocalBroadcastManager.getInstance(this).registerReceiver(mMessageReceiver, new IntentFilter("custom-event-name"));
mMessageReceiver 如下:
private BroadcastReceiver mMessageReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
String message = intent.getStringExtra("keyAction");
}
};
别忘了在onDestroy()中unregisterReceiver
LocalBroadcastManager.getInstance(this).unregisterReceiver(
mMessageReceiver);