筆記53 Service學習之概念篇,槓槓的難懂

2021-06-22 15:54:59 字數 796 閱讀 1126

一、概念

二、啟動的service的兩種狀態(聽著跟json一樣)

乙個啟動的service本質上有兩種狀態:started和bound。

rvice來停止服務。

bound:乙個service在某個應用元件呼叫bindservice()時就處於「bound」狀態。乙個bound service提供乙個client server介面以使元件可以與service互動,傳送請求,獲取結果,甚至通過程序間通訊進行交叉。乙個bound service僅在有其他應用的元件繫結它時允許。多個應用元件可同時繫結到乙個service,但是當所有的自由競爭元件不再繫結時,service就銷毀了。停止服務用unbindservice。

startservice同時也bindservice:要停止這種service要同時使用stepservice和unbindservice。

caution

任何乙個應用元件都可使用service(即使從另乙個應用),跟任何元件都可使用activity一樣,通過乙個intent啟動它。然而,你可以在mainfest檔案中宣告服務為私有,並且阻止另外的應用訪問它。參考:

三、生命週期

四、你需要service還是執行緒?

乙個service是乙個在使用者不與你的應用互動時依然可以執行於後台的簡單元件。所以,當你需要這樣做時才建立乙個service。

如果你用的是service,它缺省會執行於你的主線程,所以你應該在其中建立乙個執行緒來執行耗時或阻塞的操作。

Service學習筆記

四個手動呼叫的方法 手動呼叫的方法 作用startservice 啟動服務 stopservice 關閉服務 bindservice 繫結服務 unbindservice 解綁服務 五個內部自動呼叫的方法 內部自動呼叫的方法 作用oncreat 建立服務 onstartcommand 開始服務 on...

Service學習筆記 一

學習service的,必須提到service的兩種啟動方式,下面附上生命週期。通過startservice啟動後,service會一直無限期執行下去,只有外部呼叫了stopservice 或stopself 方法時,該service才會停止執行並銷毀。bindservice啟動服務特點 1.bind...

LLVM學習筆記(53)

3.11.2.模式分析 globalisel 是以dag 指令選擇的 td定義處理與分析為基礎的。因此,globaliselemitter 包含了乙個 codegendagpatterns 型別的const 成員cgp 一旦建立完成,就是唯讀的 在 globaliselemitter 建構函式中將完...