Android 消息分發(fā)使用EventBus的實(shí)例詳解
創(chuàng)新互聯(lián)公司長期為千余家客戶提供的網(wǎng)站建設(shè)服務(wù),團(tuán)隊(duì)從業(yè)經(jīng)驗(yàn)10年,關(guān)注不同地域、不同群體,并針對不同對象提供差異化的產(chǎn)品和服務(wù);打造開放共贏平臺,與合作伙伴共同營造健康的互聯(lián)網(wǎng)生態(tài)環(huán)境。為新吳企業(yè)提供專業(yè)的成都做網(wǎng)站、網(wǎng)站設(shè)計(jì)、外貿(mào)營銷網(wǎng)站建設(shè),新吳網(wǎng)站改版等技術(shù)服務(wù)。擁有10年豐富建站經(jīng)驗(yàn)和眾多成功案例,為您定制開發(fā)。
1. AndroidStudio使用
dependencies { //最新版本 compile 'org.greenrobot:eventbus:3.0.0' //可以翻倍提高EventBus使用效率 provided 'de.greenrobot:eventbus-annotation-processor:3.0.0-beta1' }
2. 在基類Activity中配置
/** * Activity基類 */ protected EventBus eb; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); //單例模式獲取到實(shí)例并注冊 eb = EventBus.getDefault(); eb.register(this); } @Override protected void onDestroy() { //反注冊 eb.unregister(this); super.onDestroy(); } //主線程 @Subscribe(threadMode = ThreadMode.MAIN) public void onMainEvent(EventBean event) { } //主線程 粘性(比如傳遞intent使用) @Subscribe(sticky = true, threadMode = ThreadMode.MAIN) public void onMainStickEvent(EventBean event) { } //后臺 @Subscribe(threadMode = ThreadMode.BACKGROUND) public void onBackgroundEvent(EventBean event) { } //重新開啟一個(gè)線程來執(zhí)行 @Subscribe(threadMode = ThreadMode.ASYNC) public void onAsyncEvent(EventBean event) { }
一般情況下,常用重寫onMainEvent ( ) 方法即可。
3. 創(chuàng)建自定義消息實(shí)體
//根據(jù)不同需求自定義 /** * 自定義Event消息 */ public class EventBean { public int id;//類型標(biāo)識 public Object data;//數(shù)據(jù)對象 //省略constructor & getter & setter }
4. 發(fā)送消息
繼承自基類Activity后: eb.post(new EventBean(1, "data")); //粘性 eb.postSticky(new EventBean(1, "data"));
5. 消息處理
根據(jù)數(shù)據(jù)處理的需求重寫基類的4個(gè)方法即可。
以上就是Android 消息分發(fā)使用EventBus的實(shí)例,如有疑問請留言或者到本站社區(qū)交流討論,本站關(guān)于Android的文章還有很多希望大家搜索查閱,謝謝大家對本站的支持!