android ipc通讯基础疑问点二
来源:互联网 发布:大数据利弊 编辑:程序博客网 时间:2024/06/14 09:05
三。Binder基础点
1.AIDL文件并不是实现Binder的必需品。如果是我们手写的Binder,那么在服务端只需要创建一个BookManagerImpl的对象并在Service的onBind方法中返回即可。
2.Binder连接断裂(称之Binder死亡)。。Binder运行在服务端进程,如果服务端进程由于某种原因异常终止,就出现Bindr连接断裂,会导致我们的远程调用失败。
Binder中提供了两个配对的方法:linkToDeath和unlinkToDeath,当Binder死亡时,我们收到通知,重新发送连接请求从而恢复连接。
下面是如何给Binder设置死亡代理:
DeathRecipient 是一个接口,其内部有一个方法binderDied..当Binder死亡的时候,系统会回调bindDied方法。
private IBinder.DeathRecipient mDeathRecipient = new IBinder.DeathRecipient() {
@Override
public void binderDied() {
Log.d(TAG, “binder died. tname:” + Thread.currentThread().getName());
if (mRemoteBookManager == null)
return;
mRemoteBookManager.asBinder().unlinkToDeath(mDeathRecipient, 0);
mRemoteBookManager = null;
// TODO:这里重新绑定远程Service
}
};
在客户端绑定远程服务成功后,给binder设置死亡代理
ServiceConnection mConnection = new ServiceConnection() {
public void onServiceConnected(ComponentName className, IBinder service) {
IBookManager bookManager = IBookManager.Stub.asInterface(service);
mRemoteBookManager = bookManager;
try {
mRemoteBookManager.asBinder().linkToDeath(mDeathRecipient, 0);
。isBinderAlive可以判断Binder是否死亡。
- android ipc通讯基础疑问点二
- android ipc通讯基础疑问点一
- Android IPC 通讯机制源码分析 二
- Android IPC 通讯机制源码分析 (二)
- Android IPC 通讯机制源码分析 二
- Android IPC 通讯机制源码分析 二
- Android基础——Service IPC通讯(Messenger实现)
- Android 上层实现IPC通讯
- android IPC 进程间通讯
- (二十二) IPC机制通讯
- IPC(二)---IPC基础概念介绍
- Android开源项目之Music (二)--- AIDL实现IPC进程间通讯
- Android中的IPC(二)
- Android-IPC之二
- Android IPC基础
- IPC机制---04 Android中的IPC通讯方式(A)
- IPC机制---04 Android中的IPC通讯方式(B)
- IPC机制---04 Android中的IPC通讯方式(C)
- Android studio相关,持续更新
- ACM 素数求和问题
- PAT1016. Phone Bills (25)
- spring框架学习
- 训练网址
- android ipc通讯基础疑问点二
- MySQL中MyISAM与InnoDB区别及选择
- MyBatis--关联关系查询--多对一--多表单独查询
- poj 2082 Terrible Sets(单调栈)
- unity基础UI梳理--text
- Nginx+Tpmcat 负载均衡
- 视觉词袋模型BOW学习笔记及matlab编程实现
- “抽奖”的 Web 开发实现
- Ignatius and the Princess IV HDU