真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

android事件總線EventBus3.0使用方法詳解-創(chuàng)新互聯(lián)

一.EventBus概述

成都創(chuàng)新互聯(lián)公司自2013年起,是專業(yè)互聯(lián)網(wǎng)技術(shù)服務(wù)公司,擁有項(xiàng)目成都網(wǎng)站建設(shè)、成都做網(wǎng)站網(wǎng)站策劃,項(xiàng)目實(shí)施與項(xiàng)目整合能力。我們以讓每一個夢想脫穎而出為使命,1280元靜寧做網(wǎng)站,已為上家服務(wù),為靜寧各地企業(yè)和個人服務(wù),聯(lián)系電話:18980820575

1.EventBus的三要素

EventBus有三個主要的元素需要我們先了解一下:

Event:事件,可以是任意類型的對象。
Subscriber:事件訂閱者,在EventBus3.0之前消息處理的方法只能限定于onEvent、onEventMainThread、onEventBackgroundThread和onEventAsync,他們分別代表四種線程模型。而在EventBus3.0之后,事件處理的方法可以隨便取名,但是需要添加一個注解@Subscribe,并且要指定線程模型(默認(rèn)為POSTING),四種線程模型下面會講到。
Publisher:事件發(fā)布者,可以在任意線程任意位置發(fā)送事件,直接調(diào)用EventBus的post(Object)方法??梢宰约簩?shí)例化EventBus對象,但一般使用EventBus.getDefault()就好了,根據(jù)post函數(shù)參數(shù)的類型,會自動調(diào)用訂閱相應(yīng)類型事件的函數(shù)。


2.EventBus的四種ThreadMode(線程模型)

EventBus3.0有以下四種ThreadMode:

POSTING(默認(rèn)):如果使用事件處理函數(shù)指定了線程模型為POSTING,那么該事件在哪個線程發(fā)布出來的,事件處理函數(shù)就會在這個線程中運(yùn)行,也就是說發(fā)布事件和接收事件在同一個線程。在線程模型為POSTING的事件處理函數(shù)中盡量避免執(zhí)行耗時操作,因?yàn)樗鼤枞录膫鬟f,甚至有可能會引起ANR。
MAIN:事件的處理會在UI線程中執(zhí)行。事件處理時間不能太長,長了會ANR的。
BACKGROUND:如果事件是在UI線程中發(fā)布出來的,那么該事件處理函數(shù)就會在新的線程中運(yùn)行,如果事件本來就是子線程中發(fā)布出來的,那么該事件處理函數(shù)直接在發(fā)布事件的線程中執(zhí)行。在此事件處理函數(shù)中禁止進(jìn)行UI更新操作。
ASYNC:無論事件在哪個線程發(fā)布,該事件處理函數(shù)都會在新建的子線程中執(zhí)行,同樣,此事件處理函數(shù)中禁止進(jìn)行UI更新操作。


二.EventBus的基本用法

1.自定義一個事件類(相當(dāng)于我們平常所用的bean類)

public class MessageEvent {
 ...
}

文章標(biāo)題:android事件總線EventBus3.0使用方法詳解-創(chuàng)新互聯(lián)
轉(zhuǎn)載源于:http://weahome.cn/article/hdhhs.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部