1.新建
當建立thread類的乙個例項的時候這個執行緒就進入了新建狀態 或者是未啟動狀態
2.就緒
3.執行
執行緒獲得cpu 正在執行任務 就會呼叫 run方法
除非強行停止 或者更高階的執行緒阻攔 否則會一直執行到任務結束
4.死亡
執行緒執行完畢 或者被其他執行緒殺死 一旦死亡後就不會在進入就緒 和 執行狀態
5.阻塞
由於某種原因 導致正在執行的執行緒讓出cpu 會走阻塞狀態
缺點:無法控制
如果我們退出activity時 後台還是在繼續執行這個執行緒的話 我們就需要用到了service 服務 因為service會一直執行在後台的
service 是android的一種機制 服務是執行在主線程上的 所以不能做耗時操作
service生命週期
oncreate() ondestroy()只會執行一次
開啟service:
1.startservice 開啟服務
2.stopservice 關閉服務(內部會呼叫ondestroy)
如果不執行這一步就算手動執行ondestroy()方法也不能停止服務
oncreate() - onstartcommand() - ondestroy()
繫結service
1.bindservice() 繫結服務
2.unbindservice() 解綁服務 (內部呼叫onunbind ondestroy() 銷毀服務的操作)
oncreate() - onbind() - onunbind() - ondestroy()
我們可以通過starservie啟動乙個服務 如果使用者需要控制一些後台的洗的的話 我們就通過bindservice繫結這個服務 進行使用
注意:如果只呼叫了stopservice不會進行解綁 所有的客戶端必須進行解綁服務unbindservice()
1.先繫結服務後啟動服務
如果當前service例項先繫結再啟動服務時 那麼繫結服務將會轉為啟動服務執行 無論是否銷毀activity 都不會影響這個服務的執行 只有收到銷毀情況後才會銷毀
2.先啟動服務後繫結服務
如果當前service例項先啟動再繫結服務時
服務並不將會由啟動服務轉為繫結服務執行 還是會和我們的activity繫結 服務依然是按照啟動的生命週期執行 直到你呼叫了stopservice才會銷毀
1.啟動服務優先順序比繫結服務高
2.服務在其託管程序的主線程中執行(ui 執行緒)
執行緒生命週期
今天看到一段這樣的 handle hthread createthread null,0,add,a,0,null hmutext createmutex null,false,l huchiti closehandle hthread 簡單的說,關閉了執行緒控制代碼 關閉了執行緒,其兩者的生命週期...
執行緒生命週期
本章目標 了解執行緒的生命週期 了解執行緒的停止操作 執行緒的生命週期 注意大部分的執行緒生命週期的方法基本上都已經學過了,那麼在這裡有以下三個新方法 suspend 方法 暫時掛起執行緒 resume 方法 恢復掛起的執行緒 stop 方法 停止執行緒 但是對於執行緒中suspend resume...
執行緒生命週期
執行緒的生命週期分為五種狀態 新建狀態 就緒狀態 執行狀態 阻塞狀態 死亡狀態 剛new出來的執行緒物件。新建狀態呼叫start 方法就進入就緒狀態。就緒狀態的執行緒又叫做可執行狀態,表示當前執行緒具有搶奪cpu時間片的權利 cpu時間片就是執行權 當乙個執行緒搶奪到cpu時間片之後就開始執行run...