我正在使用原生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文档?非常感谢任何帮助。