1.需求:在上传图片等一些耗时操作,长时间未收到服务器响应,应对用户进行等待提醒,防止用户多次操作。
我们可以使用android原生的ProgressDialog进行实现。
①首先声明一个ProgressDialog
private ProgressDialog progressDialog;
②用ProgressDialog.show(...)来进行信息设置,有几种参数不同的show方法。
ProgressDialog show(Context context, CharSequence title, CharSequence message, boolean indeterminate, boolean cancelable)
(1)context表示上下文,MainActivity.this或getActivity()等;
(2)title代表progress提示框的标题;
(3)message为具体提示的信息;
(4)indeterminate一个动画效果 为true时,可以明确知道进度;false时代表模糊不定的,无法明确知道当前的进度。
(5)cancelable可否通过点击其他区域或返回键,取消progressDialog的展示。
如果已有progressDialog我们可以通过set方法更新dialog信息。最后用show()方法进行展示。
public void showProgressDialog(String title, String message) {
if (progressDialog == null) {
progressDialog = ProgressDialog.show(UploadActivity.this, title,message, false, false);
} else if (progressDialog.isShowing()) {
progressDialog.setTitle(title);
progressDialog.setMessage(message);
}
progressDialog.show();
}
③progressDialog.dismiss()进行dialog的取消。
public void hideProgressDialog() {
if (progressDialog != null && progressDialog.isShowing()) {
progressDialog.dismiss();
}
}
④如button的click方法触发了耗时操作,则调用showProgressDialog,在接到 成功返回 或 失败返回 均应调用hideProgressDialog方法。