IntentService原始碼解析

2021-08-21 16:51:13 字數 1423 閱讀 7841

前言:

intentservice算是service中比較重要的乙個類,而且就100行**!今天一起閱讀它的原始碼和注釋。

成員變數(4個):

mservicelooper: looper 與執行緒關聯的looper

mservicehandler:  servicehandler 自定義handler子類,會在handlermessage中呼叫onhandleintent;

mname: string 執行緒名,一般debugging用到

mredelivery: boolean

mredelivery(boolean )truefalse

onstartcommand(method)

start_redeliver_intent

start_no_stick

onhandleintent結束前process dies的策略重啟程序不會重啟,intent也會一起死

內部類的handler:

private final class servicehandler extends handler 

@overridepublic void handlemessage(message msg)

}

方法:

protected abstract void onhandleintent(@nullable intent intent); // 想要執行的方法
// 初始化內容

@override

public void oncreate()

// 從message池中取出資料來處理

@override

public void onstart(@nullable intent intent, int startid)

@override

public int onstartcommand(@nullable intent intent, int flags, int startid)

@override

public void ondestroy()

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...