標籤:android style blog class code java
介紹:
AIDL 即 Android Interface Definition Language
使用:
1.建立.aidl檔案
1 //AIDL 檔案所在的包2 package com.houny.demo_aidl.aidl;3 4 //介面名必須和AIDL檔案名稱一致5 interface ISay{6 boolean Say();7 boolean SayInt(int i);8 boolean SayString(String str);9 }
2.建立Service,並在Mainfirst.xml裡註冊
1 public class BackgroundService extends Service{ 2 3 /** 4 * 通過這種方式實現AIDL裡定義的介面 5 */ 6 ISay.Stub say = new ISay.Stub() { 7 8 //實現介面的方法 9 // ...10 11 };12 13 14 @Override15 public IBinder onBind(Intent intent) {16 //把那個介面對象返回出去17 return say;18 }19 20 //...21 }
1 <service android:name=".service.BackgroundService"/>
3.在Activity或Fragment裡綁定Service
1 private void initAIDL() { 2 //初始化ServiceConnection,並實現回調方法 3 serviceConnection= new ServiceConnection() { 4 5 @Override 6 public void onServiceDisconnected(ComponentName name) { 7 say = null; 8 } 9 10 @Override11 public void onServiceConnected(ComponentName name, IBinder service) {12 //當Service綁定成功後會通過回調執行這個方法13 say = ISay.Stub.asInterface(service);14 }15 };16 }
private void startService() { Intent intent = new Intent(MainActivity.this, BackgroundService.class); this.bindService(intent, serviceConnection, Context.BIND_AUTO_CREATE); this.startService(intent); }
4.使用介面定義的方法
try { say.SayString("Hello");} catch (Exception e) { e.printStackTrace();}
5.進階使用請參考 這個博文 @Copyright liuhe688
我介紹的這個基本使用樣本的代碼等我知道怎麼上傳附件的時候再上傳吧
-------------------------------------------------------------------------
Change 2014-5-5 15:55:34 上傳附件 點擊下載