我正在将volley和otto集成到一个项目中,以处理所有服务呼叫,同时考虑方向更改。
通过使用otto,我可以在方向改变时注销并重新注册总线,然后当截击返回响应时,我可以将结果回传给活动,这非常有效。
但我相信我还有一个空白,我还没有处理,也就是说,如果我在暂停时注销我的总线,然后在活动仍然被破坏时返回截击的响应,截击然后发布响应(但没有活动会得到响应),然后活动被恢复,总线被重新注册,并且将不会收到响应,因为广播已经发布了。
有什么办法解决这个问题吗?我的第一个想法是实现类似于android粘性广播是如何工作的?还有其他更好的想法吗?

最佳答案

如果activityid匹配,则实际的apireult将发布到总线
所以活动可以像正常一样接受它。如果不匹配,那么
好像这件事根本没有处理。对奥托来说,这会导致
包装未处理对象的DeadEvent。应用代理
侦听DeadEvents并挂起包含ApiResult的事件
或APIResult.ActivityProxy。当一个活动注册到总线时,
APIService发布与总线具有相同活动ID的所有DeadEvents,以便
活动可以接收结果。
找到答案here

10-01 14:51