响应式编程框架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

相关文章
相关标签/搜索