1

を使用して写真を保存するアクティビティのキャッシュをクリアしたいのですが、アクティビティがアクティブになります。ユーザーがこのアクティビティを離れたときにキャッシュをクリアしたい。では、どうすればこれを処理できますか? () の状態を確認するのは良い解決策ですか、それとも backpressed をオーバーライドする必要がありますか。ユーザーが戻るボタンを押したときに isfinishing が呼び出されるかどうかは定かではありません。

4

1 に答える 1

1

アプリケーションの動作をどのようにしたいかによって異なります。

アクティビティが終了したときにキャッシュをクリアしたい場合は、それらを onCreate に保存しています。

public void onDestroy(){
    super.onDestroy();
    // clear your cache
}

ただし、ユーザーがアクティビティを離れたとき、つまり一時停止したときにキャッシュをクリアする場合は、onPauseメソッドでキャッシュをクリアする必要があります。ただし、その時点でデータをonResumeメソッドに保存する必要があります。バックグラウンドでもアクティビティのメモリを解放する方が良いオプションだと思います。

編集:

onKeyDown のソースコードより

public boolean onKeyDown(int keyCode, KeyEvent event)  {
1801        if (keyCode == KeyEvent.KEYCODE_BACK) {
1802            if (getApplicationInfo().targetSdkVersion
1803                    >= Build.VERSION_CODES.ECLAIR) {
1804                event.startTracking();
1805            } else {
1806                onBackPressed();
1807            }
1808            return true;
1809        }

したがって、戻るボタンが押されると onBackPressed が呼び出されることがわかります。戻るボタンの処理だけが必要なので、onBackPressedメソッドをオーバーライドする方がよい

于 2013-04-16T16:59:23.490 に答える