@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_first);
EventBus.getDefault().register(this);
tv = (TextView) findViewById(R.id.tv);
content = (TextView) findViewById(R.id.content);
tv.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
Intent intent = new Intent(FirstActivity.this,
SecondActivity.class);
startActivity(intent);
// EventBus.getDefault().post(
// new FirstEvent("FirstEvent btn clicked"));
EventBus.getDefault().postSticky(new FirstEvent("FirstEvent btn clicked"));
}
});
}
点击进入EventBus的getDefault方法,一路追踪,可以看到
EventBus(EventBusBuilder builder) {
subscriptionsByEventType = new HashMap<>();
typesBySubscriber = new HashMap<>();
stickyEvents = new ConcurrentHashMap<>();
mainThreadPoster = new HandlerPoster(this, Looper.getMainLooper(), 10);
backgroundPoster = new BackgroundPoster(this);
asyncPoster = new AsyncPoster(this);
indexCount = builder.subscriberInfoIndexes != null ? builder.subscriberInfoIndexes.size() : 0;
subscriberMethodFinder = new SubscriberMethodFinder(builder.subscriberInfoIndexes,
builder.strictMethodVerification,
...
}
其中mainThreadPoster是Handler,backgroundPoster和asyncPoster是一个线程