編輯:關於Android編程
之前一章記錄了跨應用啟動service,之前學習過startService於bindService的區別及用法。
使用bindService方法,activity需要service返回一個Binder對象,那麼如果是兩個應用怎麼實現呢,這裡就涉及到了一個AIDL的概念。
AIDL (Android Interface Definition Language) 是一種IDL 語言,用於生成可以在Android設備上兩個進程之間進行進程間通信(interprocess communication, IPC)的代碼。如果在一個進程中(例如Activity)要調用另一個進程中(例如Service)對象的操作,就可以使用AIDL生成可序列化的參數。
下面我們來看如何使用,
首先我們需要在service1項目中創建一個aidl接口。
我用的是eclipse,創建方法,包名右鍵–NEW–File–.aidl後綴的名稱**,如圖
aidl文件中的自己輸入接口代碼。
創建完文件後,clear工程,會在gen目錄下生產相應的java文件。
第二步 至此,一個簡單的aidl創建成功。 我們再回到service2項目中,增加按鈕事件監聽, 成功完成service2項目綁定service1項目中的service
進入service1項目中的service修改onBinder方法<喎?/kf/ware/vc/" target="_blank" class="keylink">vc3Ryb25nPqOstPrC68jnz8I8L3A+DQo8cHJlIGNsYXNzPQ=="brush:java;">
@Override
public IBinder onBind(Intent intent) {
// TODO Auto-generated method stub
return new IMyService.Stub() {
@Override
public void basicType() throws RemoteException {
// TODO Auto-generated method stub
}
};
}
case R.id.button3:
bindService(serviceIntent, this, Context.BIND_AUTO_CREATE);
break;
case R.id.button4:
unbindService(this);
break;
1.打開手機QQ浏覽器,點擊底欄【菜單】 2.向左滑動,選擇【省流加速】 3.看到【廣告過濾】了嗎,點擊進入 4.在這裡即可選擇是否打開【廣告過濾】
項目中經常使用style和Theme,但卻從來沒有考慮過它們的區別,只會copy來copy去的,有時候還有些迷茫,為了徹底告別迷茫,現把這兩者的區別和使用總結出來,供自己
Android開發過程中,經常遇到一個項目需要重復的定義相同樣式的標題欄,Android相繼推出了actionBar, toolBar, 相信有用到的朋友也會遇到一些不如
2012年到2014年支持Android設備的種類從3997增長到18796。同時各大廠商定制的屏幕尺寸也非常多。這將非常不利於我們進行屏幕適配。這要求我們必須掌握屏幕適