0

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

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

mPdfRenderer = new PdfRenderer(mFileDescriptor);

Google 示例中,虽然 PdfRenderer 在使用后总是关闭。

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

close()在打开新的 PDF 之前打电话重要吗?

4

1 回答 1

1

注意:这是一个通用答案,将涵盖所有场景,包括您的场景

那么在一般实践中,您需要释放与您的任务绑定的资源,更精确的Non-preemptive资源,这被认为是最佳实践,但是,现在从池中删除工作线程并不是非常重要,简而言之, 为你解答

  1. 如果您想采用最佳实践,您可以这样做
  2. 如果您不这样做,那么当应用程序关闭Garbage Cleaner时,将在需要资源或计划清理时为您执行任务

何时清理资源或关闭worker Threads

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

对于您的问题的回答,我希望上述陈述可以澄清一切。

于 2020-09-26T20:23:11.317 回答