我在应用程序中使用PdfRenderer
。在这个应用程序中,用户可以打开PDF文件并浏览它。他可以在同一会话中打开另一个PDF文件。
我只是注意到,在使用后或打开新的PDF之前,我根本不会关闭它。我只做以下事情:
mPdfRenderer = new PdfRenderer(mFileDescriptor);
在谷歌的例子中,尽管PdfRenderer在使用后总是关闭的。
if (null != mCurrentPage)
mCurrentPage.close();
mPdfRenderer.close();
mFileDescriptor.close();
在打开新的PDF之前致电close()
是否重要?
注意:这是一个通用答案,将涵盖所有场景,包括您的
在一般实践中,您需要释放与您的任务绑定的资源,更准确地说,Non-preemptive
资源,这被认为是最佳实践,但是,从池中删除工作线程现在并不是至关重要的。简而言之,对于您的答案
- 如果你想采用最佳实践,你可以这样做
- 如果不这样做,则当应用程序关闭时
Garbage Cleaner
将在需要资源或计划清理时为您执行任务
何时清理资源或关闭worker Threads
- 当您想要关闭应用程序时
- 当您需要其他任务,并且您知道该任务将占用大量资源,并且为了提高应用程序的效率,您真的很想这样做
- 当您想离开应用程序
onPause()
时,请暂时离开应用程序(这被认为是最佳实践,但大多数开发人员不会这样做,因为有时,由于捆绑处理,这些进程可能会在重新启动时占用更多资源[许多进程可能在onStart()
]上启动(
对于你的问题的答案,我希望以上的陈述能澄清一切。