当数据传输不方便的时候,可以使用接口回调工具类InterfaceUtils

今天有个需求,是要求在两个没有什么关系的activtiy中进行信息传输,因为数据类型太复杂,不能使用本地存储,使用eventbus又感觉太重了,因此写了一个工具类

  1. 使用单例进行初始化
  2. 使用集合保存接口对象
  3. 对外提供add、remove方法,remove方法必须调用,防止内存溢出
  4. 对外提供业务方法,可以调起所有接口的方法
/**
 * 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居多,现在看看,这种方式也是蛮不错的

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值