Android PdfDocument.writeTo导致大文档的ANR

时间:2017-03-25 08:10:49

标签: android

我正在使用原生Android库PrintedPdfDocument创建PdfDocument。当总页数大约在15以下时,下面的代码工作正常。但对于较大的文档,PdfDocument.writeTo调用导致ANR并且系统杀死我的应用程序。我在AsyncTask中执行代码。这在Android L(Samsung Note PRO)上尤其成问题; Android M可以可靠地处理多达40页(已测试)。

// open a new document
document = new PrintedPdfDocument(_activity, printAttributes);
// crate a page description
PdfDocument.PageInfo pageInfo = new PdfDocument.PageInfo.Builder(pageWidth, pageHeight, pageIndex).create();
page = document.startPage(pageInfo);
content.draw(page.getCanvas());
// finish the page
document.finishPage(page);

try
{
       File pdfPath = new File(FILE_PATH);
       // This statement causing ANR
       document.writeTo(new FileOutputStream(pdfPath));
}
catch (Exception e)
{
    // log
}
// close the document
document.close();

如何使用此代码在Android L上创建大型PDF文档?非常感谢任何帮助。

0 个答案:

没有答案