android如何使用回调函数,android 中使用回调函数

  • Post author:
  • Post category:其他


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();//要做的事         }             };