生命週期:
oncreate -> onstartcommand -> onstart(已棄用) -> ondestory
複製**
可以多次 startservice():
oncreate -> onstartcommand -> onstartcommand .... -> ondestory
複製**
第二次啟動的時候就會重複呼叫 onstartcommand。
public
@startresult
intonstartcommand
(intent intent, @startargflags int flags, int startid)
複製**
onstartcommand 返回值可選值:
start_sticky = 1
當 service 在開始狀態時(呼叫 onstartcommand 返回乙個值後),如果 service 所在的程序被殺,保持 service 在開始狀態,不保留傳過來的 intent。然後系統將嘗試重新建立 service。因為是在開始狀態,建立新的例項後一定會呼叫用 onstartcommand。如果沒有待處理的啟動命令,intent 物件為 null,需要注意檢查這一點。
start_sticky_compatibility = 0
start_sticky 的相容版本,但是不能保證被殺後 onstartcommand 會被呼叫。
start_not_sticky = 2
service 所在程序被殺後,不會重新啟動。
start_redeliver_intent = 3
service 所在程序被殺後,intent 會重新傳遞給 onstartcommand。如果呼叫 stopself(id) 則停止傳遞。
是乙個 client/server 架構,service 作為服務端,可以有多個客戶端繫結。 它允許元件(如activity)繫結到服務,傳送請求,接收響應,也可以執行程序間通訊(ipc)。所有繫結的元件都解除繫結後,該服務會被銷毀。元件被銷毀後,服務也會被銷毀。
5.0 之後官方推薦使用 jobscheduler 執行後台服務生命週期:
oncreate
onbind
onserviceconnected
onunbind
ondestroy
複製**
完整生命週期:
// 表示 service 存在且允許客戶端訪問
boolean bind = bindservice()
複製**
bindservice 的三個引數:
當第三個引數沒有設定 bind_auto_create 時,只呼叫 bindservice 不會自動建立服務,先呼叫 bindservice,之後再呼叫 startservice,會自動建立繫結服務。
清晰理解Service
生命週期 先呼叫unbindservice stopservice start sticky compatibility 0 相容start sticky,不確保服務一定會被重啟在被殺死之後 start sticky 1 如果service的程序被殺掉,當返回這個值時,把它放在初始狀態,不保留它的傳...
第13周作業2
實驗目的 學會使用自定義函式解決實際問題 實驗內容 定義自定義函式,計算sin和cos的近似值 作 者 李超 完成日期 2011 年 11 月 18 日 版 本 號 01.13.2 對任務及求解方法的描述部分 輸入描述 無 問題描述 自定義函式,用泰勒公式實現計算sin和cos的近似值,要求 1 求...
第2週第2次課 線性表(2)
順序表基本運算演算法 1.初始化線性表initlist l 2.銷毀線性表destroylist l 3.判斷線性表是否為空表listempty l 4.求線性表的長度listlength l 5.輸出線性表displist l 6.求線性表中的某個資料元素值getelem l,i,e 7.按元素值...