我有许多活动会触发后台任务;这些活动将自己传递进来作为实现监听器回调的对象,以便后台任务可以在活动上引发事件。反过来,活动可以在UI上显示一些内容,以指示后台活动是成功还是失败。
或者,我可以使用EventBus,在其中获取Activity将自身注册为监听器/订阅者。我可以让后台任务在EventBus上引发一个事件,监听它的Activity可以处理它。
一个相对于另一个的优势是什么?在何时使用其中之一?(代码清洁度?性能?注意事项?)
后续 - 我最终选择了使用EventBus。代码显然更加清晰,并且没有回调函数到处挂着。IDE(IntelliJ)认为onEvent
方法未使用,因此我创建了一个注释。
@Target({ElementType.METHOD})
public @interface EventBusHook {}
我将其放置在我的onEvent
方法之上。然后Alt + 单击它并要求IntelliJ不将其视为未使用。
并将其放置在我的onEvent
方法之上。然后Alt + 单击它,并要求IntelliJ不将其视为未使用。
@EventBusHook
public void onEvent(MyEventType myEventType){