2

Context.getSharedPreferences(String name, int mode)を呼び出し、返された設定のエディターにいくつかの値を入力してコミットすることで、新しい設定ファイルを作成できます。ただし、不要になったときに作成したファイルを削除するためのインターフェイスが API に表示されません。上記と同じ引数を渡してContext.deleteFile(String name)を試しましたが、ファイルが実際に削除されなかったことを示す が返されます。それが違いを生む場合、私はMODE_PRIVATEを使用しています。namefalse

私が知る限り、エディターのコンテキストの実装のソースを参照しても、手がかりは明らかになりません。

何か案は?ここでの背景は、以前に保存した設定を復元できるように、ユーザーが「現在の」設定のコピーを保存できるようにしているということです。それらの設定が不要になったら、保存した設定ファイルを削除して、スペースを占有しないようにしたいと考えています。現時点で私にできる最善のことはedit().clear().commit、ファイルに保存することです。これにより、ほとんどのコンテンツが削除されると思います。ただし、削除するほどではありません。

4

1 に答える 1

2

上記から同じ名前の引数を渡して Context.deleteFile(String name) を試しましたが、false を返し、ファイルが実際に削除されなかったことを示します。

これは、ファイルがそのディレクトリにないためです。

ここでの背景は、以前に保存した設定を復元できるように、ユーザーが「現在の」設定のコピーを保存できるようにしているということです。

コピーはどのようにしていますか?

サポートされている API の観点からは、realSharedPreferencesを現在アクティブな設定にし、独自のディレクトリで独自のファイル形式にバックアップおよび復元を行うのが最善の方法です。

../shared_prefsその方向に進みたくない場合は、ファイルは に関連するディレクトリ内の XML ファイルになるgetFilesDir()ため、適切な File オブジェクトを作成してその方法で削除できます。ただし、Android は後でこの場所を変更したり、ストレージ モデルを変更したりする可能性があるため、将来互換性の問題が発生する可能性があることに注意してください。

于 2010-11-05T13:47:47.920 に答える