我有一个生成pdf文件的类。 此类由Activity扩展,表示具有onCreate,onPause(等等)方法。
生成pdf文件时生成需要一些时间,因此我需要显示一个进度条以通知用户此时文件正在生成。
一切正常,当我点击一个生成按钮时,进度条会冻结几秒钟(根据Logcat:生成文件时进度条冻结)。
所以我的问题是,我不知道如何在文件生成时使进度条不可阻挡。
以下是我的代码:
Log.i(TAG, "PDF generation: " + position);
final ProgressDialog dialog = new ProgressDialog(this);
dialog.setCancelable(true);
dialog.setIndeterminate(true);
dialog.setMessage("Generating...");
dialog.show();
new Thread(new Runnable() {
@Override
public void run() {
startActivity(new Intent(getApplicationContext(),
PdfGenerator.class));
runOnUiThread(new Runnable() {
@Override
public void run() {
dialog.hide();
}
});
}
}).start();
答案 0 :(得分:1)
使用runOnUiThread更改代码,如同从线程启动Activity:
///... your code here..
new Thread(new Runnable() {
@Override
public void run() {
Your_Current_Activity.this.runOnUiThread(new Runnable() {
@Override
public void run() {
dialog.cancel();
// START ACTIVITY HERE
Your_Current_Activity.this.startActivity(new
Intent(Your_Current_Activity.this,
PdfGenerator.class));
}
});
}
}).start();