我的应用正在从后台线程中的inputStream解析数据。它必须推动 根据读取的数据发送给gui的消息。
几个月前,我做了一个类似这样的实现:
这很顺利但是......
几天前,在读书时,我发现了意图。 Itents可能会取代 这个结构是一个简单的意图广播,活动注册需要 意图。
今天,我想知道哪种解决方案在性能方面最合适。 当然,第一种解决方案在类数方面更复杂但是 不假设表现......
有人有任何线索吗?
由于
于连
答案 0 :(得分:2)
我想知道哪种解决方案在性能方面最合适
这取决于你的意思"一个简单的意图广播"。
如果您的意思是在sendBroadcast()
或其他registerReceiver()
上呼叫Activity
和Context
,则性能会更差,因为这涉及进程间通信(IPC),即使广播公司和接收方处于相同的过程中。它还会引发安全问题,因为系统上的任何应用都可以向您发送这些广播。
如果您的意思是在sendBroadcast()
的单例实例上调用registerReceiver()
和LocalBroadcastManager
,那很好,并且应该与您使用的速度相当。 LocalBroadcastManager
实现了一个进程内事件总线,消除了系统级广播的开销和安全问题。
就个人而言,我会使用另一个事件总线实现,如greenrobot's EventBus,以便于编程。
答案 1 :(得分:2)
您应该知道,如果使用广播,您将在稍后的时间内收到结果(比如延迟)