android-封装一个加载处理的handler类
2017-04-18 10:19
260 查看
public class LoadHandler extends Handler { private LoadListener listener; public LoadHandler(Looper looper) { super(looper); } public LoadHandler(LoadListener listener) { this.listener = listener; } public LoadHandler(Looper looper,LoadListener listener) { super(looper); this.listener = listener; } public LoadHandler() { } @Override public void handleMessage(Message msg) { super.handleMessage(msg); Bundle bundle = msg.getData(); switch (msg.what) { case Constants.LOAD_START:// 开始加载 if (listener != null) { listener.onStart(); } break; case Constants.LOAD_SUCCESS:// 加载成功 if (listener != null) { Object result = null; if(bundle!=null){ result = bundle.get("result"); } listener.onSuccess(result); } break; case Constants.LOAD_FAIL:// 加载失败 if (listener != null) { Object result = null; if(bundle!=null){ result = bundle.get("result"); } listener.onFail(); listener.onFail(result); } break; case Constants.LOAD_Littile_DATA:// 数据量少 if (listener != null) { Object result = null; if(bundle!=null){ result = bundle.get("result"); } listener.onLittleData(result); } break; case Constants.LOAD_HALF:// 加载一半 if (listener != null) { Object result = null; if(bundle!=null){ result = bundle.get("result"); } listener.onHalfLoad(result); } break; default: break; } } }
/** * 一个抽象的加载监听接口 * @author xiaoqian.hu * */ public interface LoadListener { void onStart(); void onLoading(); void onFail(); void onFail(Object result); void onSuccess(Object result); /** * 数据没有加载完成,但是足够程序使用时的回调 * @param result */ void onHalfLoad(Object result); void onLittleData(Object result); }
public class LoadListenerImpl implements LoadListener { private Context context; private Dialog mProgressDialog; public LoadListenerImpl() { } public LoadListenerImpl(Context context) { this.context = context; if (context != null) { initProgressDialog(null); } } public LoadListenerImpl(Context context, String Message) { this.context = context; if (context != null) { initProgressDialog(Message); } } @Override public void onFail() { dimiss(); } @Override public void onFail(Object result) { dimiss(); } @Override public void onStart() { show(); } @Override public void onLoading() { } private void dimiss() { try { if (null != mProgressDialog && mProgressDialog.isShowing()) { mProgressDialog.dismiss(); } } catch (Exception e) { e.printStackTrace(); } } private void show() { if (null != mProgressDialog && !mProgressDialog.isShowing()) { mProgressDialog.show(); mProgressDialog.setContentView(R.layout.custom_progress_dlg); } } private void initProgressDialog(String msg) { if (null == this.mProgressDialog) { // HHL modified @0819 to optimize loading effect ProgressDialog progressDialog = new ProgressDialog(context); progressDialog.setCanceledOnTouchOutside(false); progressDialog.setCancelable(false); this.mProgressDialog = progressDialog; } } @Override public void onSuccess(Object result) { dimiss(); } @Override public void onHalfLoad(Object result) { dimiss(); } @Override public void onLittleData(Object result) { dimiss(); } }
相关文章推荐
- Android24_LruCache缓存处理及异步加载图片类的封装
- Bitmap二次采样,Android中的缓存处理及异步加载图片类的封装
- Android中的缓存处理及异步加载图片类的封装
- Android27_LruCache缓存处理及异步加载图片类的封装
- android 分享一个处理BaseAdapter,getView()多次加载的方法
- Android上封装的一个音频工具类
- Android 消息处理 -- Looper 、Handler类
- android 封装一个view模块
- 怎么在android中动态加载一个java 类?
- 验证码 生成 二三例(一般处理程序,封装一个类)
- android利用Bitmap加载图片所遇到的一个奇怪的OOM问题java.lang.OutOfMemoryError
- android ListView 重写 SimpleAdapter 显示图片 异步加载及文字处理
- 一个java处理JSON格式数据的通用类(封装了一个class)
- android窗体加载过程剖析之消息处理的注册机制
- Android入门:封装一个HTTP请求的辅助类
- Android入门:封装一个HTTP请求的辅助类
- Android network:主线程将创建请求放入(请求)队列,处理线程每次取一个请求,进行处理(发送/读响应)
- VisualStudio 的一个bug:在64位系统中主窗体加载时不能捕获未处理异常
- 一个java处理JSON格式数据的通用类(封装了一个class)
- Android 应用启动时,显示加载画面后进入主画面(处理耗时的初始化)