EventBus如何发送基本数据类型
EventBus发送基本数据类型时,需要将其包装为对应的包装类对象。这是因为EventBus是基于发布/订阅模式的消息传递机制,它要求消息对象必须是一个普通的Java对象。
例如,如果要发送一个int类型的数据,可以将其包装为Integer对象:
int data = 10;
EventBus.getDefault().post(new Integer(data));
同理,其他基本数据类型也可以使用对应的包装类进行发送,例如:
boolean data = true;
EventBus.getDefault().post(new Boolean(data));
float data = 1.5f;
EventBus.getDefault().post(new Float(data));
...
在接收消息的地方,可以通过订阅方法的参数来获取基本数据类型的值。例如:
@Subscribe(threadMode = ThreadMode.MAIN)
public void onEvent(Integer data) {
int value = data.intValue();
// 处理数据
}
需要注意的是,EventBus发送的消息对象会被保存在订阅者的内部队列中,因此在发送时要确保消息对象的生命周期与订阅者的生命周期一致,避免出现内存泄漏等问题
原文地址: http://www.cveoy.top/t/topic/iofD 著作权归作者所有。请勿转载和采集!