亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

android中eventbus能夠實現進程間通信嗎?

android中eventbus能夠實現進程間通信嗎?

墨色風雨 2019-02-13 15:11:01
android中eventbus能夠實現進程間通信嗎
查看完整描述

2 回答

?
狐的傳說

TA貢獻1804條經驗 獲得超3個贊

不可以用于多進程。EventBus貌似就是訂閱者模式,而在多進程中,對象是不一致的,需要通過binder才能進行多進程通信,在這方面EventBus不支持,自然就不支持多進程了。

查看完整回答
反對 回復 2019-03-18
?
哆啦的時光機

TA貢獻1779條經驗 獲得超6個贊

前面說了,Subscriber函數的名字只能是那4個,因為每個事件訂閱函數都是和一個`ThreadMode`相關聯的,ThreadMode指定了會調用的函數。有以下四個ThreadMode:
PostThread:事件的處理在和事件的發送在相同的進程,所以事件處理時間不應太長,不然影響事件的發送線程,而這個線程可能是UI線程。對應的函數名是onEvent。
MainThread: 事件的處理會在UI線程中執行。事件處理時間不能太長,這個不用說的,長了會ANR的,對應的函數名是onEventMainThread。
BackgroundThread:事件的處理會在一個后臺線程中執行,對應的函數名是onEventBackgroundThread,雖然名字是BackgroundThread,事件處理是在后臺線程,但事件處理時間還是不應該太長,因為如果發送事件的線程是后臺線程,會直接執行事件,如果當前線程是UI線程,事件會被加到一個隊列中,由一個線程依次處理這些事件,如果某個事件處理時間太長,會阻塞后面的事件的派發或處理。
Async:事件處理會在單獨的線程中執行,主要用于在后臺線程中執行耗時操作,每個事件會開啟一個線程(有線程池),但最好限制線程的數目。



查看完整回答
反對 回復 2019-03-18
  • 2 回答
  • 0 關注
  • 4211 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號