系統耗時控制元件ProgressDialog
阿新 • • 發佈:2019-01-07
優點:耗時操作的時候,無法點選其他位置,以免動作重複。
理解:
需求:點選"跳轉"按鈕,按鈕內飾先請求介面資料,成功後,從當前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; } } }