在我的应用程序中,我正在生成 PDF。它可能需要长达 45 秒,所以我决定制作一个进度条。进度条需要从独立于 UI 线程的线程进行更新,因此我将“convertNotesToPDF”函数放在该线程中。进度条在 convertNotesToPDF 函数中更新。不幸的是,这引起了一些问题。大约 50% 的时间我在进度条线程中生成 pdf,会生成无法打开的 0 尺寸 PDF。其他 50% 的时间它工作正常,但这显然不会减少它。当我将 convert notestopdf 放在线程之外时,一切正常。
这里有一些代码供参考。首先,这是 50% 的工作时间的代码(我取出了一些不相关的代码):
new Thread(new Runnable() {
public void run() {
convertDataToPDF(bmap);
convertNotesToPDF();
progressBar.dismiss();
sendBroadcast(new Intent(Intent.ACTION_MEDIA_MOUNTED, Uri.parse("file://" + Environment.getExternalStorageDirectory())));
}
}).start();
sendBroadcast(new Intent(Intent.ACTION_MEDIA_MOUNTED, Uri.parse("file://" + Environment.getExternalStorageDirectory())));
这是我在进度条线程之外转换notetopdf时的代码:
new Thread(new Runnable() {
public void run() {
convertDataToPDF(bmap);
progressBar.dismiss();
sendBroadcast(new Intent(Intent.ACTION_MEDIA_MOUNTED, Uri.parse("file://" + Environment.getExternalStorageDirectory())));
}
}).start();
convertNotesToPDF();
sendBroadcast(new Intent(Intent.ACTION_MEDIA_MOUNTED, Uri.parse("file://" + Environment.getExternalStorageDirectory())));
感谢您的时间。