[置顶] android 中使用回调函数
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();//要做的事
}
};
更多相关文章
- android中打印函数调用栈、内存使用、屏幕分辨率
- 自定义 Theme 改变 系统全局样式
- Android(安卓)使用自定义cursorAdapter
- Android(安卓)自定义漂亮的圆形进度条
- android之helloworld详解
- Android双击事件拦截方法
- android GPS HAL 回调函数实现
- Android(安卓)Kotlin 接口函数
- android 之 GridView