今天有个需求,是要求在两个没有什么关系的activtiy中进行信息传输,因为数据类型太复杂,不能使用本地存储,使用eventbus又感觉太重了,因此写了一个工具类
- 使用单例进行初始化
- 使用集合保存接口对象
- 对外提供add、remove方法,remove方法必须调用,防止内存溢出
- 对外提供业务方法,可以调起所有接口的方法
/**
* Created by Qiangshen on 2017/5/3.
* 接口回调的工具类,当两个activity之间不方便传输数据的时候可以使用
*/
public class InterfaceUtils {
private static InterfaceUtils sInterfaceUtils;
private InterfaceUtils() {
mResults = new ArrayList<>();
}
public static InterfaceUtils get() {
if (sInterfaceUtils == null) {
sInterfaceUtils = new InterfaceUtils();
}
return sInterfaceUtils;
}
public interface OnClickResult {
void onResult();
}
private List<OnClickResult> mResults;
public void add(OnClickResult activity) {
mResults.add(activity);
}
public void remove(Activity activity) {
mResults.remove(activity);
}
/**
* 可以修改,让使用者根据需求进行设置(如需要数据可以使用参数)
*/
public void onClick() {
for (OnClickResult result : mResults) {
result.onResult();
}
}
}
大致就是这样,很简单,但是用起来蛮方便的,看来以前使用较多的是本地存储、Intent、eventBus居多,现在看看,这种方式也是蛮不错的