系统耗时控件ProgressDialog

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/jian11058/article/details/85157605

优点:耗时操作的时候,无法点击其他位置,以免动作重复。
理解:
需求:点击"跳转"按钮,按钮内饰先请求接口数据,成功后,从当前activity跳转到下一个activity;
分析:假如请求接口时,网络发生延迟,在5秒后,数据才请求成功,在这5秒内,按钮被多次点击,那么接口也会多次被请求,跳转的命令也在被多次调用,这样实际的结果就是,会出现多个第2个activity,点击返回上一个activity需要多次点击,影响用户体验,说到这有人说,对activity进行限制,假如出现了activity,就不执行activity的跳转功能;这样会涉及到另外一个问题,就是在网络延迟的情况下,用户多次点击“跳转”,界面会没有反应,虽然activity只有一个,但是也影响到了用户体验,所以,耗时操作的加入,就顺时了

1、在需要显示的地方初始化一下

private ProgressDialog pd;//耗时控件

	
	pd= ProgressDialog.show(MainActivity.this, "", "正在起盘…");//参数为activity的context;“题目”,“内容”;

2、需要它消失的时,需要在线程中掉用,处理方法为:


	mHandler.sendEmptyMessage(WAITTIME);//这个放到需要让耗时控件消失的地方
	
//	在线程中,对它进行消失操作;
	private int WAITTIME=2000;
	public Handler mHandler = new Handler() {
	        @Override
	        public void handleMessage(Message msg) {
	            Bundle bundle;
	            switch (msg.what) {
	
	                case WAITTIME:
	                    pd.dismiss();
	                    break;
			}
		}
	}

猜你喜欢

转载自blog.csdn.net/jian11058/article/details/85157605