繁体   English   中英

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

[英]How to check if a broadcast has been received or not?

我正在尝试从FirebaseMessagingService类向Fragment发送broadcast ,是否有其他方法可以知道该片段已接收到广播,除了具有存储该片段是否已初始化并随后发送广播的变量之外,是否有其他方法可以发送广播( But it will only work if Fragment does get killed between sending the broadcast吗?

是的,您可以通过ResultReceiver轻松实现此目标:

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

如果用户界面已更新,但在那一刻他离开了活动,那么您也可以进行一些改进(想象一下聊天应用,用户仍在应用中,而当此刻推送到设备时,用户界面发生了变化,但他无法正确看到更新他在第二秒离开活动的原因。 在这种情况下,您可以获取活动的UI Handler并发送一条消息,并以postDelayed(1-2秒)排队到此Handler。 因此,现在在handleMessage()中,您将调用ResultReceiver的send(...)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM