響應式編程框架RxAndroid使用簡介

RxJava針對Android的定製版本。這個版本中經過增長最少的類使在Android應用中編寫響應式組件簡單並且無障礙,特別之處在與它還提供了一個Scheduler,能夠在主線程或任何給定的Handler上進行調度

github https://github.com/ReactiveX/RxAndroidjava

1、使用RxJava有什麼好處,怎樣快速入門?

這裏網上有比較完整的介紹,就不搬書了,對應的也有中文版翻譯,請看:
Dan Lew的博客四篇介紹:android

Grokking RxJava, Part 1: The Basics 中文翻譯
Grokking RxJava, Part 2: Operator, Operator [中文翻譯]
Grokking RxJava, Part 3: Reactive with Benefits 中文翻譯
Grokking RxJava, Part 4: Reactive Android 中文翻譯git

補充下Dan Lew博客中兩個涉及到的兩個模擬接口的實現程序員

Observable<List<String>> query(String text) {
        return Observable.just(Arrays.asList(new String[]{"s1"+text,"s2"+text,"s3"+text,"s4"+text}));
};

/** 返回網站的標題,若是404了就返回null**/  
Observable<String> getTitle(String URL) {
        if("404".equals(URL)){
            return null;
        }else {
            return Observable.just("title" + URL);
        }
};

總結一下,RxJava讓業務邏輯變的更加清晰了,有木有!
到這,做爲一個Java程序員可能已經啪啪的在敲鍵盤了,而Android開發者該疑惑了,說好的AndroidObservableAppObservableViewObservable怎麼都找不着了,翻看一下源碼也沒有,why?github

這是由於RxAndroid版本升級了,Dan Lew的博客裏的介紹對應的是早起的版本,最新版本1.1.0中這些類已經被移除了。RxAndroid項目的核心成員JakeWharton解釋說 爲了不RxAndroid被廢棄或是成爲垃圾場,大多數項目成員開始討論關於怎樣纔是這個項目將來最好的方向... (原文)。結果就是RxAndroid功能更加核心化,早期版本里部分已有的功能分離出去成爲單獨的項目。如RxBindingrx-preferencesRxLifecycle。想了解更多可點擊這裏post

2、關於lambda在Android中的使用

不少介紹RxJava的文章會提到lambda.這個RxJava一塊兒使用的確會使整個調用鏈顯的更加簡潔,但同時也帶了一個問題,對應剛入門的同窗來講,代碼的可讀性將大大下降。Android Studio 中現已對Java代碼作類lambda格式化,Android官方目前也沒有lambda的支持,因此我的不建議在Android項目中使用lambda,有不一樣意見歡迎拍磚!網站

3、介紹用法和原理的一些好的文章

給 Android 開發者的 RxJava 詳解.net

相關文章
相關標籤/搜索