折磨几个晚上的带进度条更新问题终于解决,完美解决下载在多线程中运行,sqlite在主线程中使用的问题
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();
}