Android : Intent 还是 Handler + listener + runnable?

Android : Intent or Handler + listener + runnable?

我的应用程序正在后台线程中解析来自 inputStream 的数据。它必须推动 根据读取的数据向 gui 发送消息。

几个月前我做了一个类似这样的实现:

这很顺利,但是...

前几天看书的时候发现了意图。项目可能会取代 这个结构通过一个简单的意图广播在需要时注册 activity 意图。

今天,我想知道哪种解决方案在性能方面最合适。 当然,就 类 的数量而言,第一个解决方案更为复杂,但是 不假定性能...

有人知道吗?

谢谢

朱利安

I wonder which solution would fit the best in terms of performance

这取决于您所说的 "a simple intent broadcast" 是什么意思。

如果你的意思是你在你的 Activity 或其他 Context 上调用 sendBroadcast()registerReceiver(),那么性能会更差,因为这涉及到进程通信(IPC),即使广播者和接收者在同一个进程中。它还会引发安全问题,因为系统上的任何应用程序都可以向您发送这些广播。

如果您的意思是您在 LocalBroadcastManager 的单例实例上调用 sendBroadcast()registerReceiver(),那很好,并且应该与您使用的速度相当. LocalBroadcastManager 实现进程内事件总线,消除系统级广播的开销和安全问题。

就个人而言,我会使用另一个事件总线实现,例如 greenrobot's EventBus,以便于编程。

你应该知道,如果使用广播,你会在很长一段时间后收到结果(比如延迟)