Rx是响应式编程的意思, 本质是观察者模式, 是以观察者(Observer)和订阅者(Subscriber)为基础的异步响应方式. 在Android编程时, 经常会使用后台线程, 那么就可以使用这种方式. 目前的异步编程方式都会导致一些问题, 如

(1) Asynctasks can easily lead to memory leaks

(2) CursorLoaders with a ContentProvider require a large amount of configuration and boilerplate code to setup.

(3) Services are intendedfor longer running background tasks and not fast-finishing operations, such as making a network call or loading content from a database.

RxAndroid来源于RxJava, 在RxJava的基础上扩展了一些Android的功能 来处理异步的任务处理,它可以使代码更加优雅,代码的可维护性更强。

下面简单介绍Rx_Android的几种实用方法

1.create方式(1)建立

/**

* 使用create方式

*/

public static void createObserable(){

Observableobservable=Observable.create(new Observable.OnSubscribe(){

@Override

public void call(Subscriber super String> subscriber) {

if(!subscriber.isUnsubscribed()){

subscriber.onNext("hello");

subscriber.onNext("world");

subscriber.onNext(downloadJson());

subscriber.onCompleted();

}

}

});

Subscribershowsub=new Subscriber() {

@Override

public void onCompleted() {

Log.e(TAG,"onCompleted");

}

@Override

public void onError(Throwable e) {

Log.e(TAG,e.getMessage());

}

@Override

public void onNext(String s) {

Log.e(TAG,"result->>"+s);

}

};

//关联被观察者

observable.subscribe(showsub);

}/**

* 调用下载方法

* @return

*/

public static String downloadJson(){

return "json success!";

}

cretae 方式(2)建立/**

* create的第2中方法

*/

public static void createPrint(){

Observable.create(new Observable.OnSubscribe() {

@Override

public void call(Subscriber super Integer> subscriber) {

if(!subscriber.isUnsubscribed()){

for(int i=0;i<10;i++){

subscriber.onNext(i);

}

subscriber.onCompleted();

}

}

}).subscribe(new Subscriber() {

@Override

public void onCompleted() {

Log.i(TAG,"onCompleted");

}

@Override

public void onError(Throwable e) {

Log.i(TAG,e.getMessage());

}

@Override

public void onNext(Integer integer) {

Log.i(TAG,"result-->>"+integer);

}

});

}

android源码编译 老罗,Rx_Android 的简单实用方法(参考老罗代码)相关推荐

  1. Android源码编译环境搭建教程 (一) - Ubuntu系统构建

    Android源码编译环境搭建教程 (一) - Ubuntu系统构建 本教程为感兴趣的同学提供Android源码编译的环境搭建,当然这里都是基于windows系统,mac系统也差不多,将相应的软件替换 ...

  2. Android源码编译make的各类错误解决方案汇总

    问题: You are attempting to build with the incorrect version of java.  Your version is: java version & ...

  3. Android 源码编译及常见错误及解决方法

    Android 源码编译及常见错误及解决方法 参考文章: (1)Android 源码编译及常见错误及解决方法 (2)https://www.cnblogs.com/kyyblabla/p/360393 ...

  4. 【Android开发】构建Android源码编译环境

    原文:http://android.eoe.cn/topic/android_sdk 构建Android源码编译环境 123456789 10 11 12 13 14 15 16 17 18 $ su ...

  5. android源码编译出错的原因

    (1)gcc的版本过高,由于android源码编译要求为4.3,如果你的gcc版本为4.4,那你的编译可能会失败的!我的系统是ubuntu 10.04,默认的gcc版本为4.4,gcc-4.4太严格, ...

  6. [Android Pro] Android源码编译之Nexus5真机编译

    reference to : http://blog.csdn.net/liu1075538266/article/details/51272398 1.   前言 在Android安全的研究工作中, ...

  7. Ubuntu18.04搭建Android源码编译环境

    一.前言 使用Ubuntu18.04搭建Android源码的编译,本文是参考Android系统源码编译文章撰写的. 二.步骤 1.下载Android源码.Ubuntu环境搭建.git安装请参考其他文章 ...

  8. Android 源码编译详解【合集篇】

    Android 源码编译详解[一]:服务器硬件配置及机型推荐 做 Android系统开发多年,开发环境都是入职就搭建好了,入职时拿个账号密码就直接开始搞开发了,年初换了新公司,所有的项目都是刚起步,一 ...

  9. Android源码编译及替换成自己编译的linux内核

    /*************************************************************************************************** ...

最新文章

  1. mysql的ab测试工具_轻量级性能测试工具ab / wrk / locust 分析 对比
  2. curl 探测java网站_使用cURL查找网站重定向的位置?
  3. 14c语言课程设计题目,2011级数据库课程设计任务书
  4. ACM竞赛学习整理开篇之01背包问题
  5. centos6.5搭建php网站,Centos6.5下搭建web环境(Apache+mysql+php+phpMyAdmin)
  6. java培训第一阶段测试总结,达内学员Java培训阶段总结:反躬自省,愈渐完美
  7. 【转】浅析Java中的final关键字
  8. SQL Agent服务无法启动如何破
  9. 2018暑假第五周总结(8.6-8.12)
  10. jdk8升级jdk11报 java.lang.ClassNotFoundException: javax.xml.bind.JAXBException
  11. Swift 5 从Model, Struct或Class转Dictionary
  12. 数字电子技术反应时间测试电路(纯电路实现)
  13. VB2010(3)整型运算
  14. 正则Regester
  15. 程序员为什么要写博客
  16. migration php,PHP日记——Lavarel常用语句之Migration篇
  17. 企业用免费邮箱哪个好
  18. 如何在OUTLOOK签名中自动加入日期
  19. mysql重置所有表_清空mysql指定库里所有表数据
  20. 2.6亿孤独灵魂能否听出一座喜马拉雅

热门文章

  1. 【毕设】基于单片机的开关电源设计(源码+电路图+全套资料+说明文档)
  2. 特斯拉线圈的工作原理
  3. 第十四届全国大学生数学竞赛的通知
  4. ubuntu下安装qq wechat wps 教程
  5. 华为 S5700 交换机 批量修改端口方法
  6. 解读多云厂商客户真实案例,传递新钛云服解决方案价值
  7. flash动画学习指南八:动画编辑器
  8. python办公自动化pdf下载,你们都用Python实现了哪些办公自动化?
  9. 检测到弱密码套件:不支持完全前向保密
  10. 【优化求解】基于matlab遗传算法求解仓库货位优化问题【含Matlab源码 022期】