Activitty和Service通信

无论是在同进程还是跨进程都是通过 Ibinder来实现的。

同进程的情况:

Activity向Service通信,在activity中使用bindService的方式,传过去一个connection,在它的回调方法中可以获得到 Ibinder对象,在强转为我们的binder对象,通过方法传参的方式实现Activity向Service通信

Service向Activity通信,connection的回调方法中设置binder的监听,从而可以从Service中得到信息

跨进程的情况:

利用Android提供的aidl方式来实现,这里的aidl是一个个的文件,文件中可以理解成是一个接口,如果接口中还用到其他aidl,需要导入相应的包,即使在同一个包下(切记,切记,切记)

然后make progect就ok了

这里注册监听使用的是 android.os包下的RemoteCallBackList 在myBinder中实现注册和解除注册的方法,同样在connection中通用 XX.Sub的静态方法得到Ibinder对象,进而使用它已经定义好的注册监听的方法。

 

猜你喜欢

转载自blog.csdn.net/hwra2008/article/details/79108546