EventBus代替Intent将复杂对象传递给下一个即将启动的Activity

来源:互联网 发布:p2p网络投资理财 编辑:程序博客网 时间:2024/04/30 17:04

我觉得EventBus确实非常好,把我们从序列化中解脱出来,即使不序列化也能在界面间传递数据,但是有个前提,那是两个界面都已经存在并且注册了EventBus。而即将启动的下一个Activity就非常尴尬地不方便使用EventBus。当我们想给即将启动的界面传递参数时,一般都是用intent,但是复杂参数是需要序列化才能够传递的,如果你实在不想序列化,可能你就得像这样做了:

调用startActivity启动界面时先不用调用EventBus的post去传参。而是在当前界面的onStop中调用post去传递你想传的复杂参数。为什么是onStop里面呢?因为这个方法是在下一个界面成功启动后调用的。这样你就绕过序列化了。

0 0