优点:耗时操作的时候,无法点击其他位置,以免动作重复。
理解:
需求:点击"跳转"按钮,按钮内饰先请求接口数据,成功后,从当前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;
}
}
}