您的位置:首页 > 其它

Service 与 Activity之间的通信新方式

2016-01-26 19:29 225 查看
此处讨论的不是,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。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: