0
在我的应用程序中,我生成PDF。它可能需要长达45秒,所以我决定制作一个进度条。进度条需要从与UI线程分离的线程更新,因此我在该线程中放置了“convertNotesToPDF”函数。进度条在convertNotesToPDF函数中更新。不幸的是这造成了一些问题大约50%的时间我在进度条线程中生成pdf,生成一个不可打开的大小为0的PDF。另外50%的时间工作正常,但显然不会削减它。当我把转换notestopdf线程外,一切工作正常。在线程中创建PDF
以下是一些参考代码。首先这是工作时间的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())));
这里是代码时,我convertnotestopdf进度条线程之外:
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())));
谢谢你为你的时间。
使用的AsyncTask。它特别为这种东西设计 – 2013-02-13 17:03:31
谢谢拉格哈夫! AsyncTask完美运行! – clavio 2013-02-13 19:23:37