|
1)一個定義好的service必須在AndroidManifest.xml中通過<service>元素聲明才能使用。 2)為了實現(xiàn)進(jìn)程間的相互通信,Android采用了一種輕量級的實現(xiàn)方式RPC(Remote Procedure Call, 遠(yuǎn)程進(jìn)程調(diào)用)來完成。并且Android通過接口定義語言(Android Interface Definition Language,AIDL)來生成兩個進(jìn)程間相互訪問的代碼。 3)在AIDL文件中可以聲明任意多個方法,方法可以帶參數(shù)也可以有返回值,參數(shù)和返回值可以是任意類 型。但注意除了java原始類型、String、List、Map和CharSequce不需要導(dǎo)入,其他任何類型即使在同一 個包中都需要導(dǎo)入。 4)AIDL文件的內(nèi)容與java代碼非常相似,但不能加修飾符(如private)、AIDL服務(wù)不支持的數(shù)據(jù)類型 (如InputStream、OutputStream)等內(nèi)容。在所在包下直接創(chuàng)建AIDL文件。若該文件的內(nèi)容正確,ADT (刷新一下)會自動生成一個同名的java文件。
定義一個MyService類時,是繼承Service類。
開啟服務(wù)/關(guān)閉服務(wù)步驟:
1.定義一個Intent。
2.設(shè)置這個Intent的Action。
3.調(diào)用startService()/stopService() 方法。
綁定/釋放一個服務(wù)步驟:
1.定義一個 ServiceConnection類的conn,這個參數(shù)對后面有用。它必須實現(xiàn)onServiceConnected(ComponentName arg0, IBinder arg1) 和onServiceDisconnected(ComponentName arg0)這兩個方法。
2.定義一個Intent。
3.設(shè)置這個Intent的Action。
4.調(diào)用bindService()/unbindService()方法。 (conn將作為一個參數(shù)傳遞給這兩個方法) |
|
|