Service的引入
有的操作比較耗時(如:文件IO操作,大量數(shù)據(jù)的數(shù)據(jù)庫操作,訪問網(wǎng)絡(luò)等),我們希望它們在后臺運(yùn)行,不耽誤當(dāng)前的操作,這就引入了Service概念.
Android中的服務(wù)類似windows中的服務(wù),一般沒有用戶操作界面,它運(yùn)行于系統(tǒng)中不容易被用戶發(fā)覺
服務(wù)的生命周期回調(diào)方法
當(dāng)采用Context.startService()方法啟動服務(wù),與之有關(guān)的生命周期方法
onCreate()----->onStartCommand()----->onDestroy()
onCreate()該方法在服務(wù)被創(chuàng)建時調(diào)用,該方法只會被調(diào)用一次,無論調(diào)用多少次startService()或bindService()方法,服務(wù)也只被創(chuàng)建一次!!!
onStartCommand() 只有采用Context.startService()方法啟動服務(wù)時才會回調(diào)該方法.該方法在服務(wù)開始運(yùn)行時被調(diào)用.
多次調(diào)用startService()方法盡管不會多次創(chuàng)建服務(wù)實(shí)例,但onStartCommand()方法會被多次調(diào)用.
onDestroy()該方法在服務(wù)被終止時調(diào)用.
當(dāng)采用Context.bindService()方法啟動服務(wù),與之有關(guān)的生命周期方法
onCreate()----->onBind()----->onUnbind()----->onDestroy()
IntentService
intentService是為了解決程序員忘記結(jié)束服務(wù)和處理長時間任務(wù)而提出的
所以,其內(nèi)部開啟了一個子線程且結(jié)束時自動關(guān)閉周偎,與使用普通Service 沒有區(qū)別