前言
最近又要跨Activity更新視圖了,但我再也不想用OnActivityResult()這個(gè)方法了褐墅,雖說廣播也是不錯(cuò)的解決方案,但據(jù)說廣播用多了也很混亂,于是開始學(xué)習(xí)事件總線胸完。
至于用什么事件總線,RxBus翘贮,這是毫無疑問的赊窥。一來用過RxJava之后愛不釋手,二來感覺EventBus也過氣了狸页。
看了幾篇關(guān)于RxBus的博客锨能,發(fā)現(xiàn)對(duì)于未曾使用過EventBus的同學(xué)來說要弄懂RxBus還是有那么點(diǎn)難度扯再,但學(xué)會(huì)之后發(fā)現(xiàn)真的超級(jí)好用,所以此文寫給那些未曾使用過EventBus但是對(duì)RxBus感興趣的同學(xué)址遇。
這里是一些相關(guān)博客熄阻,建議看完本文再回頭看。
用RxJava實(shí)現(xiàn)事件總線(Event Bus)
RxBus真的能替代EventBus嗎倔约?
Implementing an Event Bus With RxJava - RxBus
另外附上一篇RxJava的經(jīng)典講解:
給 Android 開發(fā)者的 RxJava 詳解
Demo
https://github.com/XunMengWinter/SimpleRxBus
一個(gè)非常簡單的Demo秃殉,只有兩個(gè)Activity,在RxBusActivity中點(diǎn)擊按鈕即可更新MainActivity里的視圖浸剩,無需考慮生命周期钾军,無需重寫onActivityResult方法。
實(shí)現(xiàn)
環(huán)境配置:為項(xiàng)目引入RxJava绢要,并將RxBus類拷貝到項(xiàng)目中(Demo中使用的是Yokey大神封裝的RxBus)吏恭。
然后跟著Demo,三步即可重罪。
- 新建一個(gè)類樱哼,用于確認(rèn)事件的類型。
- 在MainActivity的onCreate()方法中訂閱事件(即接受回調(diào))剿配,在onDestroy()方法中取消訂閱搅幅。
- 在RxBusActivity中的按鈕點(diǎn)擊事件中發(fā)布事件。
就是這么簡單清晰惨篱,再也不需要重寫煩人的onActivityResult()了~
尾巴
重要的事情說三次盏筐,Demo Demo Demo