我将我的图像存储在缓存目录下的子目录中。我有一个我想运行的缓存清理任务,它检查缓存的大小并在必要时删除文件(根据我设置的一些规则)。我的问题是,运行此操作的最佳时间是什么?我正在考虑其中一个Activity生命周期方法。有什么建议吗?
答案 0 :(得分:0)
我可能会在Service
的关键活动中使用单独的线程启动onDestroy()
,可能会跟踪服务中的最后清理开始时间以确保每隔几分钟才能完成艰苦的工作。 onDestroy()不是为每种活动终止调用保证,但它可靠地是在正常活动破坏期间,例如由于退出活动。只要确保触及磁盘的任何操作都发生在UI线程之外。
答案 1 :(得分:0)
正如@binnyb所说,操作系统会自动清除缓存。
但是,如果你所谓的缓存不是操作系统的缓存(例如,你试图在应用程序内部存储一些数据),那么我建议,检查onPause()或onResume()方法。我不会依赖onDestroy服务。