android 中使用回调函数

本文详细介绍了Java中回调机制的应用方式,包括定义回调类、注册及移除回调的方法,并通过实例展示了如何在不同类间传递控制权,适用于Activity间的通信。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.定义callback类:
public abstract class AppCallback {

    public abstract void startCallback();
}


2.在触发callback函数的地方定义:
private static AppCallback mClearAll = null;

并且定义注册和移除callback的方法:
public static void registerCallback(AppCallback callback, int callBackId) {
        if (callBackId == AppConstants.ID_CALL_BACK_OK) {
            mFilterOk = callback;
        } else if (callBackId == AppConstants.ID_CALL_BACK_CANCEL) {
            mFilterCancel = callback;
        } else if (callBackId == AppConstants.ID_CALL_CLEAR) {
            mClearAll = callback;
        }
    }



    public static void removeCallback(AppCallback callback) {
        mClearAll = null;
        mFilterOk = null;
        mFilterCancel = null;
    }

触发事件中调用callback函数:
if (mClearAll != null) {
                    mClearAll.startCallback();
                }

3.callback内的事务处理(一般和第二步不在一个类(activity)里面,否则也不用使用callback):

首先在onResume中注册callback:
public void onResume() {
        mShaker.resume();
        ResultPageOption.registerCallback(updateWithFilter, AppConstants.ID_CALL_BACK_OK);
        ResultPageOption.registerCallback(updateWithFilter, AppConstants.ID_CALL_CLEAR);
        ResultPageOption.registerCallback(filterCancel, AppConstants.ID_CALL_BACK_CANCEL);
        super.onResume();
    }

然后再onDestroy中销毁callback:
public void onDestroy() {
        super.onDestroy();
        ResultPageOption.removeCallback(updateWithFilter);
    }

最后实现callback内要做什么:
private AppCallback updateWithFilter = new AppCallback(){

        @Override
        public void startCallback() {
            clearAll();//要做的事
        }        
    };

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值