如何检查是否已接收到广播



我正试图从FirebaseMessagingService类向Fragment发送broadcast,除了有一个变量来存储该片段是否已初始化,然后发送广播(But it will only work if Fragment does get killed between sending the broadcast(之外,还有什么方法可以知道该片段已接收到广播吗?

是的,您可以通过ResultReceiver:轻松实现这一点

  1. 制作您的自定义ResultReceiver
  2. 因此,现在,您可以将ResultReceiver的对象(即Parcebale(从FirebaseMessagingService传递到您的"活动",因此在客户端(在"活动"中(,当用户的UI更新时,您将获得ResultReceiver并调用方法send(…(
  3. 在ResultReceiver中处理"活动"的结果

如果用户的UI更新了,但他在那一刻离开了活动,你也可以做一些改进(想象一下聊天应用程序,用户仍然在应用程序中,在推送到设备的这一刻,UI发生了变化,但他不能正确地看到更新,因为他在那秒钟离开了活动(。在这种情况下,您可以获得活动的UI处理程序,并制作一条消息,您将使用postDelayed(1-2秒(将其排入队列,发送给该处理程序。因此,现在在handleMessage((中,您将调用ResultReceiver的send(…(。

相关内容

  • 没有找到相关文章

最新更新