Android LocalBroadcastManager是否按照事件发送的顺序发送事件?

Android LocalBroadcastManager是否按照事件发送的顺序发送事件?,android,localbroadcastmanager,Android,Localbroadcastmanager,我有一个活动A和一个服务S。他们通过LocalBroadcastManager通勤 如果S调用sendBroadcast两次,并按顺序发送两条消息M1和M2,A会在M2之前得到M1吗 谢谢,LocalBroadcastManager为您提供了两种广播方式;sendBroadcast和sendBroadcastSync。一个是同步的,另一个是异步的。sendBroadcastSync会一直阻塞,直到第一条消息的接收器运行完毕。LocalBroadcastManager有两种广播方式;sendBro

我有一个活动A和一个服务S。他们通过LocalBroadcastManager通勤

如果S调用sendBroadcast两次,并按顺序发送两条消息M1和M2,A会在M2之前得到M1吗



谢谢,

LocalBroadcastManager为您提供了两种广播方式;sendBroadcast和sendBroadcastSync。一个是同步的,另一个是异步的。sendBroadcastSync会一直阻塞,直到第一条消息的接收器运行完毕。

LocalBroadcastManager有两种广播方式;sendBroadcast和sendBroadcastSync。一个是同步的,另一个是异步的。sendBroadcastSync会一直阻塞,直到第一条消息的接收器运行完毕。

不一定。此调用传递方法是异步的,还有另一种基于权限发送有序广播的方法,基本上是拥有更多权限的方法比其他方法更早获得广播,sendOrderedBroadcast。。。。您可以找到更多信息。

不一定。此调用传递方法是异步的,还有另一种基于权限发送有序广播的方法,基本上是拥有更多权限的方法比其他方法更早获得广播,sendOrderedBroadcast。。。。您可能会找到更多信息。

LocalBroadcastManager上没有sendOrderedBroadcast。是的,我发布的解决方案来自上下文,而不是LocalBroadcastManager。OP可能只希望在本地广播,以避免IPC开销。LocalBroadcastManager上没有sendOrderedBroadcast。是的,我发布的解决方案来自上下文,不是LocalBroadcastManager。OP可能只想在本地广播,以避免IPC开销。IOW,使用sendBroadcastSync,可以保证订单,因为M1将在您有机会发送M2之前交付。有了sendBroadcast,我认为最终的效果是它们是按顺序交付的,但这不是有记录的行为,因此可能是您不应该依赖的。sendBroadcastSync的延迟如何?直觉上,在我的情况下,这似乎不是一个非常繁忙的操作,因为我只使用它来通勤两个组件。我说的对吗?这将取决于你的接收器需要多少时间才能完成。当然,有了sendBroadcastSync,你可以得到订单保证,因为M1将在你有机会发送M2之前送达。有了sendBroadcast,我认为最终的效果是它们是按顺序交付的,但这不是有记录的行为,因此可能是您不应该依赖的。sendBroadcastSync的延迟如何?直觉上,在我的情况下,这似乎不是一个非常繁忙的操作,因为我只使用它来通勤两个组件。我说的对吗?这将取决于你的接收者需要多少时间才能完成。顺便说一句,如果你想要这种本地消息,但有更多的选项,请查看和。哪一个有更好的支持,并被更多的项目使用?它们很接近,尽管我怀疑Otto使用得更多。对这两个方面的支持主要是问题跟踪程序和公共资源,如StackOverflow,AFAIK。我通过了。它说,“向总线发送是一个同步操作,因此当程序继续执行时,可以保证所有订户都被调用。”我很好奇为什么它不提供异步发送。如果我们只有同步发布,性能会成为一个问题吗?事实上,会,但它会在交付线程的上下文中讨论:顺便说一句,如果你想要这种本地消息,但有更多的选项,请查看和。哪一个有更好的支持,并被更多的项目使用?它们很接近,尽管我怀疑Otto使用得更多。对这两个方面的支持主要是问题跟踪程序和公共资源,如StackOverflow,AFAIK。我通过了。它说,“向总线发送是一个同步操作,因此当程序继续执行时,可以保证所有订户都被调用。”我很好奇为什么它不提供异步发送。如果我们只有同步发布,性能会成为一个问题吗?事实上,它会,但它会在交付线程的上下文中讨论它: