大佬牛逼
Android自定義View實(shí)踐之ViewGroupAndroid 自定義ViewGroup實(shí)踐—讓某些子View優(yōu)先顯示完整(壓縮其它View) 效果圖 效果分析 子View橫向排列 子View豎直居中 標(biāo)記為顯示完整的Vi...
大佬牛逼
Android自定義View實(shí)踐之ViewGroupAndroid 自定義ViewGroup實(shí)踐—讓某些子View優(yōu)先顯示完整(壓縮其它View) 效果圖 效果分析 子View橫向排列 子View豎直居中 標(biāo)記為顯示完整的Vi...
定義 備忘錄模式又叫做快照模式(Snapshot Pattern)或Token模式椿胯,是對象的行為模式筷登。 備忘錄對象是一個(gè)用來存儲另外一個(gè)對象內(nèi)部狀態(tài)的快照的對象。備忘錄模式的...
項(xiàng)目編譯 項(xiàng)目基于最新版 Glide 4.9.0 源碼分析惠险,通過如下方式獲取并編譯代碼: 代碼量(使用 cloc 統(tǒng)計(jì)): 我在分析 Glide 源碼前將 Glide 的項(xiàng)目...
@Iverson毅 你看 RxPermissions 源碼里面有
AOP學(xué)習(xí)總結(jié)-AspectJ編寫權(quán)限判斷框架當(dāng)我們做權(quán)限判斷和申請時(shí),雖然有很多優(yōu)秀的框架去幫我們完成抒线,但是是否有想過這樣的一個(gè)問題班巩,以使用 RxPermissions 為例,每個(gè)權(quán)限判斷的地方都要這樣調(diào)用: 是不是覺...
LQREmojiLibrary 一個(gè)超級牛逼的表情庫嘶炭,可使用表情及貼圖功能抱慌,方便好用,抽離圖片加載接口眨猎,讓開發(fā)者自己選擇圖片加載工具抑进。 碼云: https://git.osc...
文章里面就是全部代碼
AOP學(xué)習(xí)總結(jié)-AspectJ編寫權(quán)限判斷框架當(dāng)我們做權(quán)限判斷和申請時(shí),雖然有很多優(yōu)秀的框架去幫我們完成睡陪,但是是否有想過這樣的一個(gè)問題寺渗,以使用 RxPermissions 為例,每個(gè)權(quán)限判斷的地方都要這樣調(diào)用: 是不是覺...
上一篇文章我們講述了Android View事件分發(fā)機(jī)制兰迫。如果你對View的事件分發(fā)還不熟悉信殊,建議先去看一下 一文讀懂Android View事件分發(fā)機(jī)制 它是我們今天滑動(dòng)沖...
調(diào)試Annotation Processor編譯時(shí)注解器 這篇文章的目的是解釋如何在Android Studio(或IntelliJ)下調(diào)試注解處理器Module。來了解你的...
Element的子類介紹 ExecutableElement表示某個(gè)類或接口的方法汁果、構(gòu)造方法或初始化程序(靜態(tài)或?qū)嵗┪芯校ㄗ⑨岊愋驮亍ackageElement表示一個(gè)...
如何利用 Javassist 去優(yōu)雅的實(shí)現(xiàn)一個(gè)異常捕獲功能据德,可以參考文章一文應(yīng)用 AOP | 最全選型考量 + 邊剖析經(jīng)典開源庫邊實(shí)踐鲸伴,美滋滋 這里主要說一下文章里面沒講到的...
當(dāng)我們做權(quán)限判斷和申請時(shí),雖然有很多優(yōu)秀的框架去幫我們完成晋控,但是是否有想過這樣的一個(gè)問題汞窗,以使用 RxPermissions 為例,每個(gè)權(quán)限判斷的地方都要這樣調(diào)用: 是不是覺...
在應(yīng)用 AOP 之前赡译,應(yīng)該思考幾個(gè)問題: 明確你應(yīng)用 AOP 在什么項(xiàng)目 小范圍試用仲吏,選擇一個(gè)侵入性小的 AOP 方法 明確切入點(diǎn)的相似性 考慮切入點(diǎn)的數(shù)量和相似性,確定你是...
AOP 全名 Aspect Oriented Programming,意思是面向切面編程裹唆。AOP 跟 OOP 一樣誓斥,是一種編程思想。如果 OOP 是縱向思想的話许帐,那么 AOP...
作為google主推的一款圖片加載框架,從glide3.x 到glide4.x加入apt的注解編譯;詳細(xì)的使用可以詳見官方文檔[Glide v4] https://muyan...
寫在前面 目前越來越多的框架使用編譯時(shí)的注解距芬,比如butterknife,Dagger2循帐,EventBus等框仔,下面以Butterknife為例一步一步的實(shí)現(xiàn)編譯時(shí)的注解,算是...
試試這樣
```
CompositeDisposable mDisposable = new CompositeDisposable();
Observable.create((ObservableOnSubscribe<Integer>) emitter -> {
//2
Log.e(TAG, "subscribe");
emitter.onNext(1);
emitter.onNext(2);
emitter.onNext(3);
emitter.onComplete();
}).subscribe(new Observer<Integer>() {
@Override
public void onSubscribe( Disposable d) {
Log.e(TAG, "onSubscribe");
mDisposable.add(d);
}
@Override
public void onNext( Integer integer) {
Log.e(TAG, "onNext收到:" + integer);
if (integer == 2) {
mDisposable.clear();//切斷被觀察者與觀察者之間連接
Log.e(TAG, "切斷了連接");
}
}
@Override
public void onError( Throwable e) {
Log.e(TAG, "onError");
}
@Override
public void onComplete() {
Log.e(TAG, "onComplete");
}
});
```
記:RxJava小詞典一.使用Disposable切斷被觀察與觀察者之間連接 語法:disposable.dispose(); 打印為:E/SimpleActivity: onSubscribeE...