我一直在使用RxJava/RxAndroid库做一些测试,我得到了(或者至少我认为我得到了)基本原理,以及它如何简化更复杂的异步任务等。
我已经阅读并遵循了不同的教程,有些非常有意义,而另一些则更复杂,它将3或4个任务/过滤器/映射等链接在一起,对我来说,它看起来像一个浓缩的混乱(除非我自己编写功能代码,否则阅读其他功能代码比非功能代码更难遵循,即Lambdas)。希望我读得越多,尝试得越多,我就能打破那些突破性的清晰时刻。
然而,有一个方面让我很纠结,并且在我读过的信息中多次提到,那就是"不再需要使用回调了",或者"没有更多的回调地狱"。基本上我明白了——RxJava是观察者模式(本质上,尽管它比观察者模式多得多)。然而,Android是一个关于回调的框架,从Activity
和Fragment
的生命周期,Services
, BroadcastReceivers
, ClickListeners等。他们无处不在。
我不确定如何在一个严重依赖回调的框架中消除回调的需要。
我不想征求意见,因为那太宽泛了,问题已经结束了。但是,如果有一些个人的例子,或者RxJava对库的新来者"有意义"的链接,我可以看看。现在我感觉我是为了RxJava而使用它,而不是完全理解它。
看看RxBinding,它为许多Android类提供了Rx端点。修改许多框架类的艰苦工作已经在这里为您完成了。只要导入与您相关的包即可。
发展词汇确实需要一些时间。首先,您将学习阅读简单的操作符,如map
和filter ',随着时间的推移和经验(以及阅读文档),您将开发词汇表并更好地理解其他人的代码。
也检查RxLifecycle自动complete
你的可观察链和避免泄漏订阅(这可能会泄漏活动!!)请记住,这些将complete
Observable
链,而不仅仅是取消订阅。即onComplete
将在Subscriber
上调用。