使用步骤:web
①:本身写个消息类(须要什么属性就添加什么字段)async
eg: 函数
public class MessageEvent {post
public final String message;ui
public MessageEvent(String message) {this
this.message = message;spa
}.net
}orm
②:在activity中注册和注销EventBus对象
EventBus.getDefault().register(this);
EventBus.getDefault().unregister(this);
③:在须要发送数据即消息的地方调用如下方法,发送你的消息类对象
EventBus.getDefault().post(new MessageEvent("fffffffffff"));
④:在须要接收数据即消息的地方,声明并实现“订阅函数”
@Subscribe ------------这个注解是订阅者的标记,不可省略
/**
* MainThread: Subscriber will be called in Android's main thread (sometimes
* referred to as UI thread). If the posting thread is the main thread,
* event handler methods will be called directly. Event handlers using this
* mode must return quickly to avoid blocking the main thread.
*
* @param messageEvent
*/
@Subscribe
public void onEventMainThread(MessageEvent messageEvent) {
String msg = "onEventMainThread收到了消息:" + messageEvent.message;
Log.d("harvic", msg);
Toast.makeText(this, msg, Toast.LENGTH_LONG).show();
}
/**
* BackgroundThread: Subscriber will be called in a background thread. If
* posting thread is not the main thread, event handler methods will be
* called directly in the posting thread. If the posting thread is the main
* thread, EventBus uses a single background thread that will deliver all
* its events sequentially. Event handlers using this mode should try to
* return quickly to avoid blocking the background thread
*
* @param event
*/
@Subscribe
public void onEventBackgroundThread(MessageEvent event) {
Log.d("harvic", "onEventBackground收到了消息:" + event.message);
}
/**
* Async: Event handler methods are called in a separate thread. This is
* always independent from the posting thread and the main thread. Posting
* events never wait for event handler methods using this mode. Event
* handler methods should use this mode if their execution might take some
* time, e.g. for network access. Avoid triggering a large number of long
* running asynchronous handler methods at the same time to limit the number
* of concurrent threads. EventBus uses a thread pool to efficiently reuse
* threads from completed asynchronous event handler notifications
*
* @param event
*/
@Subscribe
public void onEventAsync(MessageEvent event) {
Log.d("harvic", "onEventAsync收到了消息:" + event.message);
}
/**
* PostThread: Subscriber will be called in the same thread, which is
* posting the event. This is the default. Event delivery implies the least
* overhead because it avoids thread switching completely. Thus this is the
* recommended mode for simple tasks that are known to complete is a very
* short time without requiring the main thread. Event handlers using this
* mode should return quickly to avoid blocking the posting thread, which
* may be the main thread. Example:
*
* @param messageEvent
*/
@Subscribe
public void onEvent(MessageEvent event) {
Log.d("harvic", "OnEvent收到了消息:" + event.message);
}
所需jar包,能够本身打,这里我打包了一个,能够参考