【已解决】 领券联盟P25中为什么要用list来接收HomePagerFragment注册的接口
private List<ICategoryPagerCallback> callbacks = new ArrayList<>();
@Override
public void registerViewCallback(ICategoryPagerCallback callback) {
if (!callbacks.contains(callback)) {
callbacks.add(callback);
}
}
@Override
public void unregisterViewCallback(ICategoryPagerCallback callback) {
callbacks.remove(callback);
}
为什么要用存放在list集合中,不是直接创建全局变量ICategoryPagerCallback callback = null;
然后在register中赋值 this.callback = callback 。两种情况最后会有什么区别吗
this.callback = callback,如果有多个地方需要注册呢?后来的就是把前面的覆盖掉了吗?
比如说你播放器界面需要知道播放状态,你的首页也要知道播放状态,你的详情页也要知道播放状态,那三个地方都往里设置接口实现,后面的覆盖了前面的,那其他地方不就没法更新了呢?