編輯:初級開發
作為Service必須重寫一個方法就是onBind(),如果使用startService方式啟動服務,則我們在onBind()中返回一個null的IBinder對象。今天使用bindService方法將如何寫呢? 具體的步驟如下:
1. 使用bindService方法啟動服務,bindService (Intent service, ServiceConnection conn, int flags) 有三個參數,這裡大家可能會對第二個ServiceConnection和最後第三個參數的標識感到陌生,一般在我們調用bindService時需要一個ServiceConnection獲取服務實例以及狀態,代碼如下
private ServiceConnection sc = new ServiceConnection() {這樣,我們在服務的連接和斷開時都會收到一個Toast的消息提示,而bindService最後的參數一般使用BIND_AUTO_CREATE 標識自動創建。所以一般我們綁定一個服務,使用下面的代碼
bindService(intent, sc, Service.BIND_AUTO_CREATE);
來啟動服務,而解除綁定可以用 unbindService(sc);
2. 上面說的都是在非具體的Service中進行操作,下面來看看Service需要處理哪些內容:
public boolean onUnbind (Intent intent) //反綁定服務時做清理工作
public void onRebind (Intent intent) //重新綁定時觸發
public abstract IBinder onBind (Intent intent) //我們需要返回一個IBinder對象,所以要實現這個抽象方法
3. 實現onBind方法,這裡我們簡單的給服務的調用者傳遞一個Service的實例
public class cwjBinder extends Binder{
cwJService fetchService()
{
return cwJService.this;
}
}
我們在構造Service時實例化cwjBinder使用
cwjBinder binderObj=new cwjBinder();
這時我們在onBind()的返回時設置為binderObj而不是null了。
4. 回到我們調用Service的地方,在ServiceConnection中的 onServiceConnected 方法第二個參數就是我們剛才的IBinder實例了, 該方法原型為 public void onServiceConnected(ComponentName name, IBinder service) ,這時我們可以調用 fetchService方法了。有關Android AIDL的另一注意點android開發網將在明天講解。
public class HelloXML extends Activity {private static final int MESSAGETYPE_01 = 0x
1.下載需要用到的工具: (1)下載Java的IDE開發工具? Eclipse 到Eclipse官方網站下載Ecplise For Java EE的最新Windo
File 讀寫[功能]因為文件讀寫很平常 使用打算把這個功能寫出輔助類的形式 以便以後方便使用 就是:FileIOHelper[代碼]1. 定義指定的File 以及其上
Google近期開始打擊盜版Android軟件,為開發者提供了 License Verification Library (LVL) 方式來防止Android軟件被盜版