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