`
Function
  • 浏览: 63160 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

基于回调的等待对话框事件处理

阅读更多
我在开发项目时经常遇到时间不长但又不短的耗时操作,只有2,3秒的样子,最好是弹出体格等待的对话框,以便用户友好交互,于是,写了一个辅助类,来控制所有等待对话框的显示,基于回调来处理耗时的事件,下面是辅助类的代码:
public class ProgressDialogHelper {
	//
	private Context mContext;
	// 等带对话框的标题
	private String mTitle;
	// 等待内容
	private String mMessage;
	// show
	private final int SHOW = 1;
	// dismiss
	private final int DISMISS = 0;

	public ProgressDialogHelper(Context mContext) {
		this.mContext = mContext;
	}

	// 控制进度对话框的显示与消失
	private Handler handler = new Handler() {
		@Override
		public void handleMessage(Message msg) {
			switch (msg.what) {
			case SHOW:
				progressDialog = ProgressDialog
						.show(mContext, mTitle, mMessage);
				break;
			case DISMISS:
				progressDialog.dismiss();
				break;
			}
		}
	};
	// 进度对话框
	private ProgressDialog progressDialog = null;

	/**
	 * 启用进度对话框
	 * 
	 * @param title
	 *            进度框的标题
	 * @param message
	 *            进度框显示的内容
	 * @param callBack
	 *            回调的执行方法
	 */
	public void showProgressDialog(String title, String message,
			final ProgressCallBack callBack) {
		this.mTitle = title;
		this.mMessage = message;
		handler.sendEmptyMessage(SHOW);// 弹出对话框
		new Thread() {
			public void run() {
				callBack.action();// 执行操作
				handler.sendEmptyMessage(DISMISS);// 执行完毕,关闭对话框
			}
		}.start();
	}

	// 要在进度对话框显示时执行的操作
	public interface ProgressCallBack {
		public void action();
	}

}

注释,都写的很清晰了,下面来看看如何使用这个辅助工具:
new ProgressDialogHelper(this).showProgressDialog("添加商品",
					"正在提交商品信息", new ProgressCallBack() {
						public void action() {
							try {
								// 模拟提交的耗时操作或调用别的方法
								Thread.sleep(3000);
							} catch (InterruptedException e) {
								e.printStackTrace();
							}
						}
					});

这个有点长,但是还算便于理解.下面贴两张图来看效果:





写码笔记-欢迎交流


  • 大小: 4.6 KB
  • 大小: 9.2 KB
分享到:
评论
1 楼 天使在堕落 2014-09-14  
学习了,项目正用到这个功能

相关推荐

    集成目前Android主流优秀第三方组件

    SOAP协议通信工具类(ToolSOAP.java),基于异步回调请求WebService接口 Sqlite数据库操作工具类(ToolDatabase.java),获取DAO、创建表、删除表等API 提示信息对话框工具类(ToolAlert.java),已集成泡泡、土司、...

    fdroid:优雅的Android MVP开发框架 - 基于RxJava2

    网络请求:基于RxJava+Retrofit+Gson+FDroid的封装,支持对网络请求结果的统一处理、请求结果回调到UI线程、自动判断网络连接状态、自动管理生命周期、模拟后台返回数据、自定义请求头、请求响应日志打印、每个阶段...

    基于SIP开发软件电话的一些资源(转自YOUTOO)

    我们先进行一个简单的纯SIP信令(不带语音连接建立)的UAC的SIP终端的程序开发的试验(即一个只能作为主叫不能作为被叫的的SIP软电话模型),我们创建一个MFC应用程序,对话框模式,照上面的说明,...

    大名鼎鼎SWFUpload- Flash+JS 上传

     file_dialog_complete_handler : file_dialog_complete_function, 当文件选取对话框关闭后触发的事件处理函数  upload_start_handler : upload_start_function, 开始上传文件前触发的事件处理函数  upload_...

    Android集成主流优秀第三方组件框架

    SOAP协议通信工具类(ToolSOAP.java),基于异步回调请求WebService接口 Sqlite数据库操作工具类(ToolDatabase.java),获取DAO、创建表、删除表等API 提示信息对话框工具类(ToolAlert.java),已集成泡泡、土司、...

    工程硕士学位论文 基于Android+HTML5的移动Web项目高效开发探究

    昆山工业技术研究院着眼于为委托用户和质检机构搭建良好的沟通桥梁,免去目前市场业务中企业用户需要实地地并频繁地与检测机构沟通,从而提出自己的委托乃至下委托单、等待检测报告等,设计并研发了市场上首款提供...

    MFC教程入门知识全集.rar

    2.3.4 完成回调函数 2.4 程序编写操作步骤与实验 2.5 小结 第3 章 VC 集成开发环境介绍 3.1 Visual C 开发环境 3.1.1 工作区窗格 3.1.2 输出窗格 3.1.3 编辑区 3.1.4 菜单栏、工具栏、状态栏 3.2 系统菜单...

    Android例子源码集成安卓主流优秀第三方组件框架.zip

    SOAP协议通信工具类(ToolSOAP.java),基于异步回调请求WebService接口 Sqlite数据库操作工具类(ToolDatabase.java),获取DAO、创建表、删除表等API 提示信息对话框工具类(ToolAlert.java),已集成泡泡、土司、...

    集成安卓主流优秀第三方组件框架.zip

    SOAP协议通信工具类(ToolSOAP.java),基于异步回调请求WebService接口 Sqlite数据库操作工具类(ToolDatabase.java),获取DAO、创建表、删除表等API 提示信息对话框工具类(ToolAlert.java),已集成泡泡、土司、...

    Visual C++ 编程资源大全(源码 窗体)

    waitdialog.zip 等待对话框(22KB)<END><br>66,coolmenu.zip Office 97风格菜单实现(298KB)<END><br>67,dirpk.exe 目录选择对话(78KB)<END><br>68,docktest.zip 演示Docking Window(220kb)<END><br>69,...

    Tcl_TK编程权威指南pdf

    回调与名字空间 内省(introspection) namespace命令 转换现有的软件包以使用名字空间 [incrtcl]对象系统 注意事项 第15章 国际化(internationalization) 字符集与编码 消息目录 第16章 事件驱动的编程 ...

    微软活动目录管理管理简明手册

    在基于Windows 2000网络中,活动目录(Active Directory)是它的核心。活动目录是一个分布式的目录服务。网络信息可以分散在多台不同的计算机上,保证快速访问和容错;同时不管用户从何处访问或信息处在何处,对用户都...

    易语言程序免安装版下载

    修改高级表格支持库,解决在鼠标按下和抬起之间收到时钟周期事件的情况下,无法收到“被单击”事件的BUG。 3. 修改扩展界面支持库三,解决单击卷帘菜单后导致日期框不能弹出下拉窗口的BUG。 4. 修改XP风格支持库...

    Linux程序设计 第4版.haozip01

    16.3 事件、信号和回调函数 554 16.4 组装盒构件 556 16.5 gtk+构件 559 16.5.1 gtkwindow 559 16.5.2 gtkentry 560 16.5.3 gtkspinbutton 563 16.5.4 gtkbutton 565 16.5.5 gtktreeview 568 16.6 gnome构件...

    Linux程序设计 第4版.haozip02

    16.3 事件、信号和回调函数 554 16.4 组装盒构件 556 16.5 gtk+构件 559 16.5.1 gtkwindow 559 16.5.2 gtkentry 560 16.5.3 gtkspinbutton 563 16.5.4 gtkbutton 565 16.5.5 gtktreeview 568 16.6 gnome构件...

    API之网络函数---整理网络函数及功能

    ReadFileEx 与ReadFile相似,只是它只能用于异步读操作,并包含了一个完整的回调 RegCloseKey 关闭系统注册表中的一个项(或键) RegConnectRegistry 访问远程系统的部分注册表 RegCreateKey 在指定的项下创建或...

Global site tag (gtag.js) - Google Analytics