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 に答える