Tag: otto

使用像Otto或EventBus这样的事件库是推荐的方式来处理Activities,Fragments和后台线程之间的关系

在大多数情况下,在处理案件时 用户线程( AsyncTask )执行后台处理 将计算结果传回给Activity或Fragment Activity或Fragment重新创build可能发生在用户线程完成其后台处理之前 到目前为止,从许多可靠的来源,我可以看到推荐的方式是使用Retained Fragment 来源 最佳实践:定位更改期间的AsyncTask http://www.vogella.com/tutorials/AndroidBackgroundProcessing/article.html http://www.androiddesignpatterns.com/2013/04/retaining-objects-across-config-changes.html 有时我会听到事件总线库对处理活动,碎片和后台线程之间的关系很有帮助。 (请参阅https://github.com/greenrobot/EventBus 。它指出, 活动,片段和后台线程performance良好 ) 我遇到了一些非常受欢迎的事件公交图书馆 EventBus 玫瑰油 我想知道什么时候来处理Activities,Fragments和后台线程之间的关系,Event Bus如何与Retained Fragment方法有所不同? 哪种方式是推荐的方法?

奥托vs LocalBroadcast:

我是开源贡献广场的一个巨大粉丝,已经为Android社区做了一些工作,并且正在研究他们最新的贡献Otto(事件总线) http://square.github.io/otto/ 深入挖掘,我发现Otto使用reflection,没有有序的广播(一个未消耗的消息从一个接收器传递到下一个接收器,在相同types的事件中聆听)Otto相信更多的消失模型。 现在,android在其v4支持库中提供了LocalBroadcastManager (LBM),它可以达到同样的目的,虽然它比较笨重,并且对传递的对象有更多的限制。 但在更明亮的一面,它确实支持有序的广播,更像是正常的广播。 奥托和LBM都在同一个进程空间内,所以在速度方面我想两者都是一样的。 我能看到的唯一真正的区别是,Otto允许你定义自定义事件,而且你不必序列化/包裹对象。 因此,我真正的问题是,如果LBM做同样的事情,你会在什么时候使用Otto。 参考文献 http://nick.perfectedz.com/otto-event-system/ 使用Intents或事件总线在相同的应用程序内进行通信 https://plus.google.com/107049228697365395345/posts/6j4ANWngCUY

如何使用Otto事件总线将服务发送到活动?

简单的BusProvider.getInstance().post()带来的exception不是main thread 。 如何使用Otto事件总线将服务发送到活动?