1. 程式人生 > >EventBus代替Intent將複雜物件傳遞給下一個即將啟動的Activity

EventBus代替Intent將複雜物件傳遞給下一個即將啟動的Activity

我覺得EventBus確實非常好,把我們從序列化中解脫出來,即使不序列化也能在介面間傳遞資料,但是有個前提,那是兩個介面都已經存在並且註冊了EventBus。而即將啟動的下一個Activity就非常尷尬地不方便使用EventBus。當我們想給即將啟動的介面傳遞引數時,一般都是用intent,但是複雜引數是需要序列化才能夠傳遞的,如果你實在不想序列化,可能你就得像這樣做了:

呼叫startActivity啟動介面時先不用呼叫EventBus的post去傳參。而是在當前介面的onStop中呼叫post去傳遞你想傳的複雜引數。為什麼是onStop裡面呢?因為這個方法是在下一個介面成功啟動後呼叫的。這樣你就繞過序列化了。