AIDL死亡回调

       AIDL常用在android服务端与客户端之间的通信中,容易发生客户端或者服务端死亡,无法通知到对端情况,从而造成客户端不知服务端死亡或者服务端不知客户端死亡,还在进行数据回调操作。

1   客户端意外死亡在服务端的监听方式

       服务端通过监听服务端设置的AIDL回调,实现死亡代理,服务端在监听到死亡代理时,将已死亡的客户端回调移除。

        

callback.asBinder().linkToDeath(new IBinder.DeathRecipient() {
    @Override
    public void binderDied() {
        Log.d("binder", "客户端死亡啦~!");
    }
}, 0);

2   客户端意外死亡在服务端的监听方式

      

//死亡接受者
IBinder.DeathRecipient deathRecipient = new IBinder.DeathRecipient() {
	@Override
	public void binderDied() {
        //服务端死亡
		if (iMyAidlInterface != null) {
			//注销监听和回收资源
			iMyAidlInterface.asBinder().unlinkToDeath(this, 0);
			iMyAidlInterface = null;
		}
	}
};
private IMyAidlInterface iMyAidlInterface;

class Myconnect implements ServiceConnection {


	//连接的成功的时候回调
	@Override
	public void onServiceConnect
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值