Android中进程间通信

绑定的Service用于实现进程间通信的。
【组件间通信开发流程】
1. 自定义Service,注册
2. 自定义接口,用于约定Activity需要调用Service来执行的方法
3.1 [Service] 自定义内部类,继承Binder,并实现上述接口
3.2 [Service] 重写onBind(),将内部类的对象作为返回值
4.1 [Activity] 自定义内部类,实现ServiceConnection
4.2 [Activity] 在需要绑定Service时,调用bindService()方法实现绑定
4.3 [Activity] 在内部类的onServiceConnected()方法中,将参数IBinder service强制转换为第2条步骤的接口类型,则可以调用Service中的方法
4.4 [Activity] 在onDestroy()方法中,调用unbind()方法解除与Service的绑定,该语句应该在super.onDestroy()之前调用
【进程间通信的开发流程】
1. 在“服务端”,参考“组件间通信”,创建Service及必要的Service的处理
2. 在“客户端”准备访问“服务端”的Activity及界面的初始化等
3. 为“服务端”的Service配置intent-filter,使得该Service可以被其它应用程序激活
4. 将“服务端”原有的IMusicPlayer.java接口修改为AIDL接口
5. 将“服务端”的Service中的内部类(InnerBinder)修改为直接继承自IMusicPlayer.Stub
6. 在“客户端”创建“服务端”的AIDL文件的包名,并把“服务端”的aidl文件复制到“客户端”
7. 在“客户端”,在InnerServiceConnection的onServiceConnected()方法中,通过IMusicPlayer.Stub.asInterface()方法获取IMusicPlayer的对象

posted @ 2016-03-05 17:45  fighting9527  阅读(161)  评论(0编辑  收藏  举报