Android RxJava原始碼分析(1)

2021-09-13 23:56:41 字數 1180 閱讀 5152

observable.create(new observable.onsubscribe() 

}) .subscribe(new observer()

@override

public void onerror(throwable e)

@override

public void onnext(string s)

});observable為被觀察者,observer為觀察者,subscriber為訂閱,觀察者與被觀察者通過訂閱關聯起來.接下來進行原始碼分析:observable.create()方法主要是建立了乙個observable物件

public static observablecreate(onsubscribef)
protected observable(onsubscribef)
返回的是我們new observable.onsubscribe()物件。然後我們再看subscribe方法。

public final subscription subscribe(final observer<? super t> observer) 

//走了下面這個方法

return subscribe(new subscriber()

@override

public void onerror(throwable e)

@override

public void onnext(t t)

});}

private static subscription subscribe(subscriber<? super t> subscriber, observableobservable) 

try catch (throwable e) catch (throwable e2)

return subscriptions.unsubscribed();

}}

然後我們呼叫subscriber.onnext("qb");

subscriber.oncompleted();實現完成。

AbstractCollection原始碼分析

abstractcollection抽象類提供了collection的骨架實現,collection分析請看 這裡直接看它的 是如何實現的.public abstract iterator iterator 該方法沒有實現.public abstract int size 該方法沒有實現.publi...

ThreadPoolExecutor原始碼閱讀

執行緒池解決兩個問題 一是復用執行緒,減少建立銷毀執行緒帶來系統開銷 二是限定系統資源使用邊界,避免大量執行緒消耗盡系統記憶體 適用於互不依賴,執行時間短,不需要對執行緒控制操作的執行緒 新增任務時,1.若執行緒數量小於corepoolsize,則新增執行緒執行任務 2.若執行緒數量大於等於core...

OrangePi One Android 原始碼編譯

一 系統環境搭建參照 二 lichee原始碼編譯 1.檢視help build.sh h2.配置核心 cd linux 3.4 make arch arm menuconfig 進入配置頁面,上下移動列表,空格是選擇列表,左右移動選擇退出選項 3.首次編譯執行清除 在 lichee linux3.4...