1

关于在活动内部运行的广播接收器。通常我在onResume中注册,并在onPause内部取消注册。但。假设发件人发送了广播,现在我的活动恢复,我的活动已暂停。活动现在恢复,是否会收到广播?活动何时在Android中接收广播

现在明白了这一点。文档表示该活动在暂停时不会收到意图。但是这个陈述是悬而未决的,因为我的具体问题。

onCreate -> onResume -> onPause|...broadcast sent...| -> onResume-> ??? 
+1

在'onPause()'中注销Receiver的主要原因是因为在Activity处于非活动状态时,您不希望接收广播。如果不是这样,您应该考虑在后台运行的服务中注册接收器。 – adelphus

+0

我喜欢这两个答案,我会投两个。但@adelphus更进一步建议与服务配对,所以如果您发布回复,我希望将其视为最佳回应。对于不理解的人来说,由于评论有点简单,我的活动将绑定到服务并以这种方式检查更新。 –

+0

欣赏它,但我的评论并没有真正回答你的问题(*该活动是否会收到广播“)。一般来说,SO喜欢你标记你的实际问题的答案,即使这些评论可以帮助你。 – adelphus

回答

2

不是。因为当您向该活动发送广播时,您已经取消了该接收者的注册。因此,广播将被发送,寻找可以处理该广播的接收器,并且由于没有,所以放弃该请求。

恢复时,您的应用程序将重新注册接收器。但是,由于先前的请求已被删除,因此它不会对其做出响应,而只会响应活动恢复后发送的请求。