我正试图从FirebaseMessagingService
类向Fragment
发送broadcast
,除了有一个变量来存储该片段是否已初始化,然后发送广播(But it will only work if Fragment does get killed between sending the broadcast
(之外,还有什么方法可以知道该片段已接收到广播吗?
是的,您可以通过ResultReceiver:轻松实现这一点
- 制作您的自定义ResultReceiver
- 因此,现在,您可以将ResultReceiver的对象(即Parcebale(从
FirebaseMessagingService
传递到您的"活动",因此在客户端(在"活动"中(,当用户的UI更新时,您将获得ResultReceiver并调用方法send(…( - 在ResultReceiver中处理"活动"的结果
如果用户的UI更新了,但他在那一刻离开了活动,你也可以做一些改进(想象一下聊天应用程序,用户仍然在应用程序中,在推送到设备的这一刻,UI发生了变化,但他不能正确地看到更新,因为他在那秒钟离开了活动(。在这种情况下,您可以获得活动的UI处理程序,并制作一条消息,您将使用postDelayed(1-2秒(将其排入队列,发送给该处理程序。因此,现在在handleMessage((中,您将调用ResultReceiver的send(…(。