Service 与 Activity之间的通信新方式

来源:互联网 发布:幼儿园软件设施 编辑:程序博客网 时间:2024/05/22 14:22

此处讨论的不是,IPC之间的通信,仅限于同一个app内,Service与Activity之间的通信。


有的时候,可能我们需要在Service里面启动一个Activity去处理一些东西,当处理完成后,需要回调给Service。通常的做法,我们会:

1、在Service定义static常量/方法,然后Activity直接调用

2、在Service里面注册广播,然后Activity里面发送相应广播(最好用local广播)

---其实,最优雅的方式是onActivityResult方式,很可惜,Service是不支持的。


今天,为大家推荐一种新的方式:Messenger方式。

第一步:在Service里面定义一个Handler,在启动Activity时,在Intent里面附带一个Messenger对象,由于其是Parcelable的,所以可以被传递。

第二步:在Activity里面取出Messenger对象,然后调用Messenger.send方法,发送一个                消息到Service里面的Handler对象里面,只需处理消息就OK。


0 0
原创粉丝点击