public void doProgressUpdate() { final ProgressDialog progressDialog = new ProgressDialog(MainActivity.this); progressDialog.setTitle("更新"); progressDialog.setMessage("更新中,请稍候..."); progressDialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL); progressDialog.setProgress(0); progressDialog.setMax(100); progressDialog.show(); final Runnable afterThread = new Runnable() { public void run() { try { Log.e("更新", flag); } catch (Exception e) { e.printStackTrace(); } } }; final Handler handler = new Handler() { public void handleMessage(Message msg) { if (msg.what >= 100) { afterThread.run(); progressDialog.cancel(); progressDialog.dismiss(); } progressDialog.setProgress(msg.what); super.handleMessage(msg); } }; Runnable doThread = new Runnable() { public void run() { try { // Looper.loop(); flag="aaaa"; Thread.sleep(1000); handler.sendEmptyMessage(20); Thread.sleep(1000); handler.sendEmptyMessage(40); Thread.sleep(1000); handler.sendEmptyMessage(60); Thread.sleep(1000); handler.sendEmptyMessage(80); Thread.sleep(1000); handler.sendEmptyMessage(100); // /// } catch (Exception e) { e.printStackTrace(); } finally { progressDialog.cancel(); progressDialog.dismiss(); } } }; new Thread(doThread).start(); }
用ProgressDialog带进度条更新
折磨几个晚上的带进度条更新问题终于解决,完美解决下载在多线程中运行,sqlite在主线程中使用的问题
猜你喜欢
转载自hszdz.iteye.com/blog/1758567
今日推荐
周排行