用线程控制dialog的呈现时间,思路很简单,直接show代码了,我也是为了方便自己记录
private void showProgressDialog() { pDialog = new ProgressDialog(mContext); pDialog.setProgressStyle(ProgressDialog.STYLE_SPINNER); pDialog.setProgress(100); pDialog.setMessage("请稍等一秒..."); pDialog.setIndeterminate(false); pDialog.show(); WindowManager.LayoutParams lp = pDialog.getWindow().getAttributes(); lp.gravity = Gravity.CENTER; Window win = pDialog.getWindow(); win.setAttributes(lp); // 只呈现1s new Thread(new Runnable() { @Override public void run() { long startTime = System.currentTimeMillis(); int progress = 0; while (System.currentTimeMillis() - startTime < 1000) { try { progress += 10; pDialog.setProgress(progress); Thread.sleep(100); } catch (InterruptedException e) { pDialog.dismiss(); } } pDialog.dismiss(); } }).start(); }