0

我有一个磁盘缓存,当应用程序关闭时我需要关闭它。最好的地方在哪里?

- 覆盖活动 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() 是否总是在进程销毁时由系统调用?

-我不知道的其他方式?

4

1 回答 1

1

您可以考虑在 onStop() 方法中执行此步骤,该方法是“当您不再对用户可见时调用。您接下来将收到 onRestart()、onDestroy() 或什么也没有,具体取决于以后的用户活动。” 然后在您的 onRestart() 方法中,您可以根据需要回收缓存。

http://developer.android.com/reference/android/app/Activity.html#onStop%28%29

于 2012-09-20T21:33:09.590 回答