我有一个磁盘缓存,我需要在应用关闭时关闭它。哪个地方最好?
- 覆盖活动onDestroy方法并检查它是否是任务根目录:
@Override
protected void onDestroy () {
if (this.isTaskRoot()) {
//I only want to close it if this is the last activity of the app
CloseCache();
}
super.onDestroy();
}
根据文档,当系统刚杀死应用程序时,可能无法调用Activity.onDestroy(),因此在这种情况下,这将使缓存保持打开状态。
- 使用在同一进程中运行的服务并从其onDestroy回调关闭缓存? Service.onDestroy()是否在系统被破坏时始终被调用?
- 其他一些我不知道的方式?
答案 0 :(得分:1)
您可以考虑在onStop()方法中执行此步骤,该方法是“当您不再对用户可见时调用。您将接下来接收onRestart(),onDestroy()或什么都不会,具体取决于以后的用户活动“。然后在onRestart()方法中,如果需要,可以回收缓存。
http://developer.android.com/reference/android/app/Activity.html#onStop%28%29