上一篇我們實(shí)現(xiàn)了,操作符Map功能。本篇實(shí)現(xiàn)線程切換操作符subscribeOn及observeOn。 創(chuàng)建抽象執(zhí)行Runnable的Schedule 創(chuàng)建主線程及子線程執(zhí)行...
上一篇我們實(shí)現(xiàn)了,操作符Map功能。本篇實(shí)現(xiàn)線程切換操作符subscribeOn及observeOn。 創(chuàng)建抽象執(zhí)行Runnable的Schedule 創(chuàng)建主線程及子線程執(zhí)行...
上一篇我們實(shí)現(xiàn)了,觀察訂閱及發(fā)布功能。本篇實(shí)現(xiàn)操作符Map。 創(chuàng)建一個(gè)用于數(shù)據(jù)轉(zhuǎn)換接口 基于裝飾者模式,我們抽象出觀察者及被觀察者裝飾者接口 實(shí)現(xiàn)裝飾者類,傳入了被裝飾者對(duì)象...
首先創(chuàng)建原始被觀察者及觀察者接口 創(chuàng)建抽象的被觀察者 創(chuàng)建數(shù)據(jù)發(fā)送者接口 創(chuàng)建數(shù)據(jù)發(fā)送者與被觀察者建立聯(lián)系的接口 創(chuàng)建被觀察者實(shí)現(xiàn)類及數(shù)據(jù)發(fā)送者實(shí)現(xiàn)類 這樣我們就完整創(chuàng)建出了...
獲取getSharedPreferences(String name, int mode) 先取了緩存, 如果緩存未命中, 才構(gòu)造對(duì)象 構(gòu)造SharedPreferences...
創(chuàng)建基于HttpUrlConnection的具體獲取網(wǎng)絡(luò)數(shù)據(jù)流HttpUrlConnectionUtil 包裝具體每一個(gè)請(qǐng)求的Request類 基于Handler、Threa...
/************************************** 創(chuàng)建表 ***********************************...
Transformer轉(zhuǎn)換器,Observable.compose() Observable.compose()操作符是直接對(duì)當(dāng)前Observable進(jìn)行操作;Transfo...
讀寫鎖:核心思想實(shí)現(xiàn)讀寫分離,高并發(fā)下特別適合 讀多寫少的場(chǎng)景。 synchronized關(guān)鍵字和ReentrantLock 同一時(shí)間只能有一個(gè)線程進(jìn)行訪問被鎖定的代碼,讀寫...
ReentrantLock 重入鎖使用java.util.concurrent.locks.ReentrantLock類來(lái)實(shí)現(xiàn)。它的幾個(gè)重要方法如下: 對(duì)于重入鎖,同一個(gè)線程...
BlockingQueue 在java.util.concurrent包中的 BlockingQueue接口類是一種線程安全的隊(duì)列。通過ReentrantLock實(shí)現(xiàn)線程安全...
這很久之前寫的了,rxjava1和rx2區(qū)別還是不大的,不過現(xiàn)在也有更好的做法,RxLifecycle綁定生命周期,你可以看一下
Android 開發(fā)使用MVP結(jié)合RxJava產(chǎn)生內(nèi)存泄漏的解決在上一篇我們說(shuō)道,MVP中由于P對(duì)V(Activity)的引用可能導(dǎo)致內(nèi)存泄漏。我們都知道,當(dāng)我們使用非靜態(tài)內(nèi)部類,或者匿名內(nèi)部類的時(shí)候,由于內(nèi)部類會(huì)默認(rèn)持有外部類的引用,當(dāng)...
平時(shí)在做線程任務(wù)停止的時(shí)候,可能很多情況下都是使用一個(gè)退出標(biāo)志,使線程正常退出,也就是run方法完成后線程終止。這里我們說(shuō)一下使用interrupt()方法來(lái)停止線程。首先,...
1.非本地資源Bitmap內(nèi)存的計(jì)算 首先是一個(gè)像素占用的內(nèi)存 不考慮采樣率壓縮,加載一張bitmap占用內(nèi)存 當(dāng)我們?cè)O(shè)置BitmapFactory.options.inSa...