首先两者通信是通过代理模式进行处理的,细化之后如下
处理流程如下 通过Binder方法第二个对象ServiceConnection
中的onServiceConnected方法中的参数IBinder获取service对象 之后再activity操作的时候通过service对象调用里面的方法,结束时通过在service中定义的接口回调给activity去实现并处理后续流程。
service 内部创建一个Binder对象。并在binder对象中创建一个方法 getService返回service对象自身,并创建一个接口定义一个方法。
activity在oncreate的时候BindService绑定 ,并通过第二个参数中的onServiceConnected方法中的参数IBinder获取service对象赋值到成员变量方便后续调用。(此时就不需要管理多余的事情了)。在之后操作的时候通过onClick触发需要的时候利用之前获取到的service对象去调用其自定义的方法进行流程的操作。其中当结束的时候通过service内部的接口把操作结束后的信息通过接口中的方法传出去,再回到Activity中给service创建一个借口对象并实现,之后回调成功并对数据进行展示或者处理全看开发自己处理。