Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/210.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java EventBus android实现,为什么要反射_Java_Android_Reflection_Event Driven_Event Bus - Fatal编程技术网

Java EventBus android实现,为什么要反射

Java EventBus android实现,为什么要反射,java,android,reflection,event-driven,event-bus,Java,Android,Reflection,Event Driven,Event Bus,我在我的项目中使用EventBus,它工作得很好,但是一些大学说他们对这个库有问题。我不是说EventBus模式的concreate实现,有两种广泛使用的实现。 但它们都使用反射。反射并不便宜,尤其是在移动设备上。 所以我的问题是为什么不避免使用反射?? 例如,我的想法是使用Android服务作为事件总线管理器,或者您可以使用在应用程序生命周期中可用的自定义应用程序类。例如,服务将能够注册订户,通知他们,取消注册。。。EventBus所能做的一切。就服务是高优先级组件而言,我们可以确保当我们需要

我在我的项目中使用EventBus,它工作得很好,但是一些大学说他们对这个库有问题。我不是说EventBus模式的concreate实现,有两种广泛使用的实现。
但它们都使用反射。反射并不便宜,尤其是在移动设备上。
所以我的问题是为什么不避免使用反射??
例如,我的想法是使用Android服务作为事件总线管理器,或者您可以使用在应用程序生命周期中可用的自定义应用程序类。例如,服务将能够注册订户,通知他们,取消注册。。。EventBus所能做的一切。就服务是高优先级组件而言,我们可以确保当我们需要发送事件时,它将处于活动状态,而且如果我们在应用程序类中引用它,例如。
关于订阅者,为什么不只实现通用接口
OnEventSubscriber
,如果您对多个事件感兴趣,可以实现另一个具有适当事件类型的接口。并实现具有特定类型的OneEvent方法

为什么当前的实现使用反射方法而不是上面描述的方法?创建这些库的人都是经验丰富的开发人员,所以实现过程之所以如此肯定是有原因的。

如有任何解释、评论,我将不胜感激。Thx。请详细说明您指的是哪种EventBus实现

事件总线的一些真正优势使用:

  • 快速简便的一对多事件(单个调度器-多个接收器)
  • 应用程序任何部分的全局引用
  • 从不同线程发送/接收事件
  • 速度
  • 粘性事件(在初始竞争条件场景中非常方便),特别是涉及多个数据层时
一个健壮的事件总线实现了以上所有功能

你也可以看到这个


LocalBroadcastManager
1)无法满足上述所有要求2)需要更多的编码来分派/侦听[LocalBroadcastManager][1],它是一个回调方法列表。没有思考也没有服务。[1]: