我正在编写一个从FCM消息接收一些数据的应用程序,然后根据消息中包含的数据有效负载更新UI。
服务运行正常,并接收数据,但我无法弄清楚如何将其恢复到我的主要活动。
Firebase服务在我的清单中声明为
<service android:name=".MyFirebaseService">
<intent-filter>
<action android:name="com.google.firebase.MESSAGING_EVENT" />
</intent-filter>
</service>
在我的MyFirebaseService类中,我覆盖了onMessageReceived方法,但是我应该如何通知我的主要活动已收到消息?
我可以使用Firebase服务处理器吗?
答案 0 :(得分:1)
dev.android.com > Develop > Training > Background Jobs > Reporting Work Status
https://developer.android.com/training/run-background-service/report-status.html
将IntentService中的工作请求状态发送给其他人 组件,首先创建一个包含其中状态的Intent 扩展数据。
接下来,通过调用发送Intent LocalBroadcastManager.sendBroadcast()。这会将意图发送给任何人 您的应用程序中已注册接收它的组件。
Intent localIntent = new Intent(BROADCAST_ACTION).putExtra(DATA_STATUS, status);
LocalBroadcastManager.getInstance(this).sendBroadcast(localIntent);
要接收广播的Intent对象,请使用的子类 广播接收器。在子类中,实现
BroadcastReceiver.onReceive()
回调方法,其中 LocalBroadcastManager在收到Intent时调用。 LocalBroadcastManager将传入的Intent传递给BroadcastReceiver.onReceive()
。注册BroadcastReceiver和IntentFilter 系统,获取LocalBroadcastManager的实例并调用它
registerReceiver()
方法。
LocalBroadcastManager.getInstance(this)
.registerReceiver(mDownloadStateReceiver, statusIntentFilter);