2011-07-28 44 views
3

我猜测广播消息被张贴到接收线程的消息 队列中,并通过循环传递。广播是在消息队列中的其他消息之前传递还是仅附加到队列末尾?我没有特别的需要或任何类似的东西,只是想知道出于好奇。广播传递和性能

在服务和活动之间为IPC使用广播的性能开销(CPU和内存)是多少?

GL

回答

1

我从来没有注意到在使用该设备的一个相当大的压力。

这是我发现的唯一“理智”的方式,可以在服务和活动之间进行通信,而不会在UI线程上引发问题。

2

广播是在消息队列中的其他消息之前传递还是仅附加到队列末尾?

我认为他们只是排队结束。简单的方法来测试这是post()几个Runnables到队列,每个睡一会儿,然后发送自己的广播。如果Runnables都在广播之前处理完毕,它就会结束。如果广播在稍后Runnables之前处理,则它在前面被注入。

在服务和活动之间为IPC使用广播的性能开销(CPU和内存)是多少?

谦虚,正如@jlindenbaum所示。我不会建议尝试解决数以千计的事情,并且还有用于在线工作的轻量级解决方案(例如,Messenger)。