关闭PdfRenderer是否重要,何时关闭

问题描述

我在我的应用中使用PdfRenderer。用户可以在此应用中打开PDF文件并浏览。他可以在同一会话中打开另一个PDF文件。

我刚刚注意到,在使用后或打开新PDF之前,我根本不关闭它。我只是执行以下操作:

mPdfRenderer = new PdfRenderer(mFileDescriptor);

the Google example中,尽管PdfRenderer在使用后始终关闭。

if (null != mCurrentPage) 
  mCurrentPage.close();
mPdfRenderer.close();
mFileDescriptor.close();

在打开新PDF之前调用close()是否重要?

解决方法

注意:这是一个笼统的答案,将涵盖包括您在内的所有情况

在一般实践中,您需要释放绑定到任务的资源,更准确地说,是 Non-preemptive 资源,这被认为是最佳实践,但是删除如今,池中的工作线程并不是非常关键,总之,对于您的答案

  1. 如果您要采用最佳做法,则可以这样做
  2. 如果您不这样做,则在应用程序关闭时 Garbage Cleaner 将在需要资源或计划进行清理时为您完成任务

何时清理资源或关闭worker Threads

  1. 要关闭应用程序时
  2. 当您需要其他任务时,您知道该任务将占用大量资源,并且要使您的应用程序高效,您真的想这样做。
  3. 当您想离开您的应用程序 onPause() 时,您的应用程序会暂时存在(被认为是最佳实践,但大多数开发人员不这样做,因为有时,这些过程可能会由于进行了捆绑处理,因此需要花费更多的资源来重新启动[许多进程可能在 onStart() ]上启动)

对于您的问题的答案,我希望以上声明可以澄清所有问题。

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...