bindService的一些笔记

本文详细介绍了在Android中绑定本地及远程服务的具体步骤。包括在Activity中通过bindService()方法绑定服务,实现ServiceConnection接口处理连接状态变化,在Service中重写onBind()方法返回IBinder实例,以及如何通过得到的代理对象调用服务提供的方法。

绑定本地服务的流程

1.在activity中调用bindService(),去绑定服务

    bindService(intent, new MyConn(), BIND_AUTO_CREATE);

需要传递一个叫ServiceConnection的接口参数,用来返回连个毁掉

当服务被成功绑定

当服务失去连接


2.在service里面需要重新onBind()方法,在服务被绑定的时候会被调用,返回一个IBinder接口对象(代理人)

代理人必须要实现一个方法,这个方法可以调用到服务的方法


3.在activity的onServiceConnected()得到代理人


4.调用代理人的方法


5.中间人调用服务的方法


绑定远程服务的流程

1.在activity中调用bindService(),去绑定服务

    bindService(intent, new MyConn(), BIND_AUTO_CREATE);

需要传递一个叫ServiceConnection的接口参数,用来返回连个毁掉

当服务被成功绑定

当服务失去连接


2.在service里面需要重新onBind()方法,在服务被绑定的时候会被调用,返回一个IBinder接口对象(代理人)

接口定义要用aidl,用自动生成的IService.Stub

代理人必须要实现一个方法,这个方法可以调用到服务的方法


3.在activity的onServiceConnected()得到代理人

使用IService.Stub.asInterface()


4.调用代理人的方法


5.中间人调用服务的方法


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值