android源码编译 老罗,Rx_Android 的简单实用方法(参考老罗代码)
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 的简单实用方法(参考老罗代码)相关推荐
- Android源码编译环境搭建教程 (一) - Ubuntu系统构建
Android源码编译环境搭建教程 (一) - Ubuntu系统构建 本教程为感兴趣的同学提供Android源码编译的环境搭建,当然这里都是基于windows系统,mac系统也差不多,将相应的软件替换 ...
- Android源码编译make的各类错误解决方案汇总
问题: You are attempting to build with the incorrect version of java. Your version is: java version & ...
- Android 源码编译及常见错误及解决方法
Android 源码编译及常见错误及解决方法 参考文章: (1)Android 源码编译及常见错误及解决方法 (2)https://www.cnblogs.com/kyyblabla/p/360393 ...
- 【Android开发】构建Android源码编译环境
原文:http://android.eoe.cn/topic/android_sdk 构建Android源码编译环境 123456789 10 11 12 13 14 15 16 17 18 $ su ...
- android源码编译出错的原因
(1)gcc的版本过高,由于android源码编译要求为4.3,如果你的gcc版本为4.4,那你的编译可能会失败的!我的系统是ubuntu 10.04,默认的gcc版本为4.4,gcc-4.4太严格, ...
- [Android Pro] Android源码编译之Nexus5真机编译
reference to : http://blog.csdn.net/liu1075538266/article/details/51272398 1. 前言 在Android安全的研究工作中, ...
- Ubuntu18.04搭建Android源码编译环境
一.前言 使用Ubuntu18.04搭建Android源码的编译,本文是参考Android系统源码编译文章撰写的. 二.步骤 1.下载Android源码.Ubuntu环境搭建.git安装请参考其他文章 ...
- Android 源码编译详解【合集篇】
Android 源码编译详解[一]:服务器硬件配置及机型推荐 做 Android系统开发多年,开发环境都是入职就搭建好了,入职时拿个账号密码就直接开始搞开发了,年初换了新公司,所有的项目都是刚起步,一 ...
- Android源码编译及替换成自己编译的linux内核
/*************************************************************************************************** ...
最新文章
- mysql的ab测试工具_轻量级性能测试工具ab / wrk / locust 分析 对比
- curl 探测java网站_使用cURL查找网站重定向的位置?
- 14c语言课程设计题目,2011级数据库课程设计任务书
- ACM竞赛学习整理开篇之01背包问题
- centos6.5搭建php网站,Centos6.5下搭建web环境(Apache+mysql+php+phpMyAdmin)
- java培训第一阶段测试总结,达内学员Java培训阶段总结:反躬自省,愈渐完美
- 【转】浅析Java中的final关键字
- SQL Agent服务无法启动如何破
- 2018暑假第五周总结(8.6-8.12)
- jdk8升级jdk11报 java.lang.ClassNotFoundException: javax.xml.bind.JAXBException
- Swift 5 从Model, Struct或Class转Dictionary
- 数字电子技术反应时间测试电路(纯电路实现)
- VB2010(3)整型运算
- 正则Regester
- 程序员为什么要写博客
- migration php,PHP日记——Lavarel常用语句之Migration篇
- 企业用免费邮箱哪个好
- 如何在OUTLOOK签名中自动加入日期
- mysql重置所有表_清空mysql指定库里所有表数据
- 2.6亿孤独灵魂能否听出一座喜马拉雅