資源描述:
《android服務(wù)service_詳解》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫。
1、第8章Android服務(wù)?8.1Service起步?8.1.1Service的生命周期?8.1.2綁定Activity和?8.1.3在BroadcastReceiver中啟Service動(dòng)Ser..?8.2.1獲得系統(tǒng)服務(wù)?8.2.2在模擬器上模擬重力感應(yīng)?8.3.1計(jì)時(shí)器:Chronometer?8.3.2預(yù)約時(shí)間Handler?8.3.5全局定時(shí)器AlarmManager?8.3.4在線程中更新GUI組件(1)?8.3.5全局定時(shí)器?8.3.5全局定時(shí)器AlarmManagerAlarmManager(2)(3)?8.
2、4.1什么是AIDL服務(wù)?8.4.2建立AIDL服務(wù)的步驟(1)?8.4.2建立AIDL服務(wù)的步驟?8.4.2建立AIDL服務(wù)的步驟(3)(2)?8.5本章小結(jié)第8章Android服務(wù)服務(wù)(Service)是Android系統(tǒng)中4個(gè)應(yīng)用程序組件之一(其他的組件詳見3.2節(jié)的內(nèi)容)。服務(wù)主要用于兩個(gè)目的:后臺(tái)運(yùn)行和跨進(jìn)程訪問。通過啟動(dòng)一個(gè)服務(wù),可以在不顯示界面的前提下在后臺(tái)運(yùn)行指定的任務(wù),這樣可以不影響用戶做其他事情。通過AIDL服務(wù)可以實(shí)現(xiàn)不同進(jìn)程之間的通信,這也是服務(wù)的重要用途之一。本章內(nèi)容Service的生命周期綁定A
3、ctivity和Service在BroadcastReceiver中啟動(dòng)Service系統(tǒng)服務(wù)時(shí)間服務(wù)在線程中更新GUI組件AIDL服務(wù)在AIDL服務(wù)中傳遞復(fù)雜的數(shù)據(jù)8.1Service起步Service并沒有實(shí)際界面,而是一直在Android系統(tǒng)的后臺(tái)運(yùn)行。一般使用Service為應(yīng)用程序提供一些服務(wù),或不需要界面的功能,例如,從Internet下載文件、控制Video播放器等。本節(jié)主要介紹Service的啟動(dòng)和結(jié)束過程(Service的生命周期)以及啟動(dòng)Service的各種方法。8.1.1Service的生命周期本節(jié)的
4、例子代碼所在的工程目錄是srcch08ch08_servicelifecycleService與Activity一樣,也有一個(gè)從啟動(dòng)到銷毀的過程,但Service的這個(gè)過程比Activity簡(jiǎn)單得多。Service啟動(dòng)到銷毀的過程只會(huì)經(jīng)歷如下3個(gè)階段:創(chuàng)建服務(wù)開始服務(wù)銷毀服務(wù)一個(gè)服務(wù)實(shí)際上是一個(gè)繼承android.app.Service的類,當(dāng)服務(wù)經(jīng)歷上面3個(gè)階段后,會(huì)分別調(diào)用Service類中的3個(gè)事件方法進(jìn)行交互,這3個(gè)事件方法如下:1.publicvoidonCreate();//創(chuàng)建服務(wù)2.publicvoid
5、onStart(Intentintent,intstartId);//開始服務(wù)3.publicvoidonDestroy();//銷毀服務(wù)一個(gè)服務(wù)只會(huì)創(chuàng)建一次,銷毀一次,但可以開始多次,因此,onCreate和onDestroy方法只會(huì)被調(diào)用一次,而onStart方法會(huì)被調(diào)用多次。下面編寫一個(gè)服務(wù)類,具體看一下服務(wù)的生命周期由開始到銷毀的過程。1.packagenet.blogjava.mobile.service;2.importandroid.app.Service;3.importandroid.content.In
6、tent;4.importandroid.os.IBinder;5.importandroid.util.Log;6.7.//MyService是一個(gè)服務(wù)類,該類必須從android.app.Service類繼承8.publicclassMyServiceextendsService9.{10.@Override11.publicIBinderonBind(Intentintent)12.{13.returnnull;14.}15.//當(dāng)服務(wù)第1次創(chuàng)建時(shí)調(diào)用該方法16.@Override17.publicvoidonCre
7、ate()18.{19.Log.d("MyService","onCreate");20.super.onCreate();21.}22.//當(dāng)服務(wù)銷毀時(shí)調(diào)用該方法23.@Override24.publicvoidonDestroy()25.{26.Log.d("MyService","onDestroy");27.super.onDestroy();28.}29.//當(dāng)開始服務(wù)時(shí)調(diào)用該方法30.@Override31.publicvoidonStart(Intentintent,intstartId)32.{33.Log
8、.d("MyService","onStart");34.super.onStart(intent,startId);35.}36.}在MyService中覆蓋了Service類中3個(gè)生命周期方法,并在這些方法中輸出了相應(yīng)的日志信息,以便更容易地觀察事件方法的調(diào)用情況。讀者在編寫Android的應(yīng)用組件