首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网络技术 > 网络基础 >

Android AIDL 简略实用

2013-10-22 
Android AIDL 简单实用1 什么是AIDL,AIDL是干嘛用的呢?AIDL 是一个内部进程间通信描述语言,于我来理解,它

Android AIDL 简单实用
1 什么是AIDL,AIDL是干嘛用的呢?
  AIDL 是一个内部进程间通信描述语言,于我来理解,它的定义形式是很固定,简单的

2 AIDL 在什么情况下使用?
  举个例子,当你的Android APP想调用第三方应用或者你自己写的服务进程,可以使用,

3 怎么使用呢?
 
  首先你要先定义好你的AIDL文件 XXX.aidl,很简单,看文件的内容
 
 

 private AidlService mAidlService = null;        private ServiceConnection mServiceConnection = new ServiceConnection() {        @Override        public void onServiceDisconnected(ComponentName name) {            // log("onServiceDisconnected");        }        @Override        public void onServiceConnected(ComponentName name, IBinder service) {            mAidlService = AidlService.Stub.asInterface(service);        }    };

    该连接返回服务进程的binder对象,有了它就可以调用服务端接口啦


   好了,到此,你就基本掌握AIDL的使用了,是不是很简单?


   题外之延伸:

   通过这个例子,你有没有想到Service中 startService 和 bindService的区别?

   注意bind的service销毁了,activity 要解绑否则activity 也会销毁

   平时大家在使用跨进程的时候,注意方式的选择,跨进程无非是数据的共享,可采用的方法不单单是AIDL,可以如下

   1  广播Brocastcast
  
   2  ContentProvider,通过数据库存储

   3  Sharapreference,前提是设置开放模式

   4  文件

   5   SystemProperty 存储,这个是临时存储,机器重启的话就清除了


具体选哪种,根据实际情况选择, 当然能不用跨进程尽量不用,毕竟进程启动的开销会大些

热点排行