自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(592)
  • 资源 (31)
  • 收藏
  • 关注

原创 Rxjava(变换类)-GroupBy

将一个Observable分拆为一些Observables集合,它们中的每一个发射原始Observable的一个 子序列,哪个数据项由哪一个Observable发射是由一个函数判定 的,这个函数给每一项指定一个Key,Key相同的数据会被同一个Observable发射.demoObservable.range(1, 8).groupBy(new Func1() {

2016-10-31 15:25:17 3218

原创 Rxjava(变换类)-scan

连续地对数据序列的每一项应用一个函数,然后连续发射结果我们看一个demo Observable.range(1, 10).scan(new Func2() { @Override public Integer call(Integer integer, Integer integer2) { retur

2016-10-31 11:49:11 793

原创 Rxjava(变换类)-Buffer

定期收集Observable的数据放进一个数据包裹,然后发射这些数据包裹,而不是一次发射一 个值。Buffer 操作符将一个Observable变换为另一个,原来的Observable正常发射数据,变换产生 的Observable发射这些数据的缓存集合。Buffer 操作符在很多语言特定的实现中有很多种变 体,它们在如何缓存这个问题上存在区别。注意:如果原来的Observa

2016-10-28 14:41:48 745

原创 Rxjava(Subject)-一个综合例子

这个例子来自http://blog.piasy.com/AdvancedRxJava/2016/10/03/subjects-part-1/package com.test;import rx.Observable;import rx.Observer;import rx.functions.Action1;import rx.functions.Func1;import rx.o

2016-10-28 11:25:40 899

原创 Rxjava(Subject)-SerializedSubject(线程安全)--demo

demopackage com.test;import rx.functions.Action1;import rx.subjects.PublishSubject;import rx.subjects.SerializedSubject;/** * Created by leaves on 2016/10/28. */public class MultiThreadTest

2016-10-28 11:17:49 2156

原创 Rxjava(Subject)-ReplaySubject--代码分析

先看一下类图结构然后,看一下create public static ReplaySubject create() { return create(16); }这里默认把容量设置为16,也即能保存到最新的16个状态 public static ReplaySubject create(int capacity) { if (

2016-10-27 23:23:10 1052

原创 Rxjava(Subject)-ReplaySubject--demo

ReplaySubject会发射所有来自原始Observable的数据给观察者,无论它们是何时订阅的。也 有其它版本的ReplaySubject,在重放缓存增长到一定大小的时候或过了一段时间后会丢弃旧 的数据(原始Observable发射的)。如果你把ReplaySubject当作一个观察者使用,注意不要从多个线程中调用它的onNext方法 (包括其它的on系列方法),这可能导致同时(非顺序)

2016-10-27 22:20:58 685

原创 Rxjava(Subject)-PublishSubject--代码分析

先看下类图我们看一下它的创建: public static PublishSubject create() { return new PublishSubject(new PublishSubjectState()); }创建了一个PublishSubjectState然后看下onNext public void onN

2016-10-27 18:07:10 2208

原创 Rxjava(Subject)-PublishSubject--demo

PublishSubject只会把在订阅发生的时间点之后来自原始Observable的数据发射给观察者。需 要注意的是,PublishSubject可能会一创建完成就立刻开始发射数据(除非你可以阻止它发 生),因此这里有一个风险:在Subject被创建后到有观察者订阅它之前这个时间段内,一个 或多个数据可能会丢失。如果要确保来自原始Observable的所有数据都被分发,你需要这样 做:或者使用C

2016-10-27 17:55:09 2689

原创 Rxjava(Subject)-BehaviorSubject--代码分析

还是把demo贴过来BehaviorSubject s = BehaviorSubject.create(555); s.subscribe(new Action1() { @Override public void call(Integer integer) { System.out.printl

2016-10-27 16:37:52 1065

原创 Rxjava(Subject)-BehaviorSubject--demo

当观察者订阅BehaviorSubject时,它开始发射原始Observable最近发射的数据(如果此时还 没有收到任何数据,它会发射一个默认值),然后继续发射其它任何来自原始Observable的 数据。然而,如果原始的Observable因为发生了一个错误而终止,BehaviorSubject将不会发射任何 数据,只是简单的向前传递这个错误通知。我们来看下demo

2016-10-27 16:04:09 1075

原创 Rxjava(Subject)-AsyncSubject--代码分析

首先我们来看下它的类结构图从demo分析我们的代码 AsyncSubject subject = AsyncSubject.create(); subject.subscribe(new Action1() { @Override public void call(Integer integer) {

2016-10-27 15:47:53 830

原创 Rxjava(Subject)-AsyncSubject--demo

Subject可以看成是一个桥梁或者代理,在某些ReactiveX实现中(如RxJava),它同时充当 了Observer和Observable的角色。因为它是一个Observer,它可以订阅一个或多个 Observable;又因为它是一个Observable,它可以转发它收到(Observe)的数据,也可以发射 新的数据。一个AsyncSubject只在原始Observable完成后,发射来

2016-10-27 15:00:35 1178

原创 Rxjava(变换类)-concatMap

demo Observable.from(aa).concatMap(new Func1>() { @Override public Observable call(Integer number) { return Observable.just(number * number).subscrib

2016-10-27 11:45:02 1679

原创 Rxjava(变换类)--FlatMap2

demo ArrayList aa= new ArrayList<>(Arrays.asList(2, 3, 4, 5, 6, 7, 8, 9, 10)); Observable.from(aa).flatMap(new Func1>() { @Override public Observable call(Int

2016-10-26 23:01:54 925

原创 Rxjava(线程类)--subscribeOn原理

实例: System.out.println("<<<<<< main threadid = " + Thread.currentThread().getId()); Observable.just(1).doOnSubscribe(new Action0() { @Override public void call

2016-10-26 12:33:18 798

原创 Rxjava(其他)--doOnSubscribe原理

doOnSubscribe一般用于执行一些初始化操作,我们看其实现原理demo Observable.just(1).doOnSubscribe(new Action0() { @Override public void call() { System.out.println("<<<<<<subsc

2016-10-26 12:18:52 6893

原创 Rxjava(线程类)--observeOn原理

实例代码如下: Observable.just(1).observeOn(Schedulers.from(JobExecutor.getInstance())).subscribe(new Action1() { @Override public void call(Integer integer) {

2016-10-26 11:25:30 746

原创 Rxjava(线程类)--observeOn和subscribeOn实例

observeOn作用于该操作符之后操作符直到出现新的observeOn操作符 System.out.println("<<<<<< main threadid = " + Thread.currentThread().getId()); Observable.just(1).map(new Func1() { @Override

2016-10-26 10:58:21 782

原创 Rxjava(变换类)--FlatMap

FlatMap 将一个发射数据的Observable变换为多个Observables,然后将它们发射的数据合并 后放进一个单独的ObservableFlatMap 操作符使用一个指定的函数对原始Observable发射的每一项数据执行变换操作,这 个函数返回一个本身也发射数据的Observable,然后FlatMap 合并这些Observables发射的数 据,最后将合并后

2016-10-25 18:11:47 1569

原创 Rxjava(变换类)--map

对Observable发射的每一项数据应用一个函数,执行变换操作 Observable.just(1).map(new Func1() { @Override public Integer call(Integer integer) { return integer + 1;

2016-10-25 17:41:19 550

原创 Rxjava(创建类)--timer

创建一个Observable,它在一个给定的延迟后发射一个特殊的值 Observable.timer(10, TimeUnit.SECONDS).subscribe(new Action1() { @Override public void call(Long aLong) { log(aLong + ""

2016-10-25 17:15:04 760

原创 Rxjava(创建类)--start

Async.start(new Func0() { @Override public String call() { String s = "333333333"; return s + "4444444444"; } }).subscribe(n

2016-10-25 17:07:03 432

原创 Rxjava(创建类)--Repeat

创建一个发射特定数据重复多次的Observable

2016-10-25 14:36:23 904

原创 Rxjava(创建类)--Range

创建一个发射特定整数序列的Observable,Range操作符发射一个范围内的有序整数序列,你可以指定范围的起始和长度。RxJava将这个操作符实现为range函数,它接受两个参数,一个是范围的起始值,一个是范围的数据的数目。如果你将第二个参数设为0,将导致Observable不发射任何数据(如果设置为负数,会抛异常)。Observable.range(10, 10).subsc

2016-10-24 18:07:22 603

原创 Rxjava(创建类)--Interval

创建一个按固定时间间隔发射整数序列的Observable,它接受一个表示时间间隔的参数和一个表示时间单位的参数。 Observable.interval(10, TimeUnit.SECONDS).subscribe(new Action1() { @Override public void call(Long aLong)

2016-10-24 18:00:07 997

原创 Rxjava(创建类)--error

error创建一个不发射数据以一个错误终止的Observable Observable.error(new Exception("ddddd")).subscribe(new Observer() { @Override public void onNext(String s) { log("onNe

2016-10-24 17:11:13 375

原创 Rxjava(创建类)--Never

Never创建一个不发射数据也不终止的Observable Observable.never().subscribe(new Observer() { @Override public void onNext(String s) { log("onNext:" + s);

2016-10-24 17:03:41 700

原创 Rxjava(创建类)--Empty

创建一个不发射任何数据但是正常终止的ObservableObservable.empty().subscribe(new Observer() { @Override public void onNext(String s) { log("onNext:" + s); }

2016-10-24 16:51:46 1716

原创 Rxjava(创建类)--defer

还是先看文档上面的直到有观察者订阅时才创建Observable,并且为每个观察者创建一个新的ObservableDefer 操作符会一直等待直到有观察者订阅它,然后它使用Observable工厂方法生成一个 Observable。它对每个观察者都这样做,因此尽管每个订阅者都以为自己订阅的是同一个 Observable,事实上每个订阅者获取的是它们自己的单独的数据序列。在

2016-10-24 16:02:37 514

原创 Rxjava(创建类)--from

from的参数只能是数组或者Iterable或者Future等,不能是基本类型等,我们看一下下面这个例子 Integer[] items2 = { 0, 1, 2, 3, 4, 5 }; Observable myObservable =Observable.from(items2); Subscriber mySubscriber = new S

2016-10-21 16:24:24 611

原创 Rxjava(创建类)--just2

上篇文章我们分析的是from参数只有一个,假设有多个,这里我们假设2个Observable myObservable =Observable.just("Hello, world!","ddd");我们看下有什么不一样 public static Observable just(T t1, T t2) { return from((T[])new Object[]

2016-10-21 16:16:01 569

原创 Rxjava(创建类)--just1

just操作符跟Observable.create一样,同样是创建一个Observable,看一下just创建的流程。 public static Observable just(final T value) { return ScalarSynchronousObservable.create(value); }这里调用ScalarSynchronousObs

2016-10-21 16:00:17 681

原创 Rxjava--subscribe流程(订阅过程)

myObservable.subscribe(mySubscriber);我们看到是 被观察者 订阅 观察者 public final Subscription subscribe(Subscriber subscriber) { return Observable.subscribe(subscriber, this); }static Subscrip

2016-10-21 14:22:18 5637

原创 Rxjava--Subscriber创建流程(观察者)

Subscriber是一个抽象类,它实现了观察者接口Subscription接口方法已由Subscriber实现,所以我们只需要实现Observer接口 @Override public final void unsubscribe() { subscriptions.unsubscribe(); } /** * Indic

2016-10-21 11:24:52 1160

原创 Rxjava--create流程(被观察者)

Create操作符从头开始创建一个Observable,给这个操作符传递一个接受观察者作为参数的函数,编写这个函数让它的行为表现为一个Observable--恰当的调用观察者的onNext,onError和onCompleted方法。一个形式正确的有限Observable必须尝试调用观察者的onCompleted正好一次或者它的onError正好一次,而且此后不能再调用观察者的任何其它方法

2016-10-21 11:13:19 881

原创 NanoHTTPD----SimpleWebServer处理请求过程

回到ServerRunnable的run函数 public void run() { try { httpd.getMyServerSocket().bind(httpd.hostname != null ? new InetSocketAddress(httpd.hostname, httpd .myPort

2016-10-20 21:21:42 7329 1

原创 NanoHTTPD----SimpleWebServer初始化

SimpleWebServer继承于NanoHTTPD启动的时候,首先初始化index文件 public static final List INDEX_FILE_NAMES = new ArrayList() { { add("index.html"); add("index.htm"); }

2016-10-20 17:06:50 2489

原创 rxJava just和from区别

直接上代码 Integer[] items2 = { 0, 1, 2, 3, 4, 5 }; Observable.from(items2).subscribe(new Action1() { @Override p

2016-10-19 17:41:07 3851

原创 sqldelight使用

1、使用AndroidStudio 安装SQLDelight插件,这样写出来的.sq文件会高亮关键字2、在main目录新建一个sqldelight文件,在里面新建相应的model包目录,然后建立一个mode的.sq文件,系统会自动生成相应文件名的 ***Model.java文件3、主要来看下生成的Model文件:以网上的一个GithubUserModel为例:GithubUse

2016-10-12 16:47:47 2193 3

dex2jar源码

dex2jardex2jardex2jardex2jardex2jardex2jar

2016-12-22

Animation_test.zip

Animation_test.zip

2014-09-25

patch_wifi_ethernet_A20

wifi以太网共存补丁程序

2014-08-08

传感器_了解

传感器_了解

2013-05-24

vold.eap

vold.eap

2013-03-07

root_server

root_server

2013-02-25

net-snmp_useful_libsnmp_android

net-snmp_useful_libsnmp_android

2013-02-25

blcr-0.8.2-android

blcr-0.8.2-android

2012-11-23

android binder流程图

android binder流程图

2012-11-10

MPEG2_GUIDE(1).CHM

MPEG2有关 ts pat pmt的说明 MPEG2有关 ts pat pmt的说明

2012-11-08

ashmem C case

ashmem_C实例C++层的

2012-11-08

Android AIDL 简单case

Android AIDL 简单case

2012-10-24

binder简单示例

binder简单示例

2012-10-22

dhcp 抓 包

dhcp抓包.

2012-08-24

DHCP原理介绍

DHCP原理介绍

2012-08-23

红外遥控相关资料

红外遥控相关资料

2012-07-04

json 代码

json代码、c实现。

2012-06-05

kobj测试case

kobj测试case

2012-05-18

vold-for-usb

android支持ext*,ntfs等格式的代码

2012-04-15

ntfs-3g-for-android

ntfs-3g-for-android修改后的代码

2012-04-15

kernel修改支持uid,gid等

kernel修改支持uid,gid等kernel修改支持uid,gid等

2012-04-15

NTFS_and_boot_code

NTFS_and_boot_codeNTFS_and_boot_code

2012-03-30

NTFS文件系统研究

NTFS文件系统研究NTFS文件系统研究

2012-03-30

FAT32文件系统详解

FAT32文件系统详解

2012-03-29

Linux Device Drivers

Linux Device Drivers

2012-03-22

Understanding The Linux Kernel

Understanding The Linux Kernel

2012-03-22

Android_Binder设计与实现_-_设计篇

Android_Binder设计与实现_-_设计篇

2012-03-22

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除