アプリケーションの SharedPreferences データを削除するにはどうすればよいですか?
多くの Web サービスを使用してデータを同期するアプリケーションを作成しています。テストの目的で、アプリを再起動するときにいくつかの SharedPreferences 値を消去する必要があります。
アプリケーションの SharedPreferences データを削除するにはどうすればよいですか?
多くの Web サービスを使用してデータを同期するアプリケーションを作成しています。テストの目的で、アプリを再起動するときにいくつかの SharedPreferences 値を消去する必要があります。
特定の値を削除するには: SharedPreferences.Editor.remove()の後にcommit()
それらをすべて削除するには、SharedPreferences.Editor.clear()
その後にcommit()
戻り値を気にせず、アプリケーションのメイン スレッドからこれを使用している場合は、apply()
代わりに使用することを検討してください。
私の解決策:
SharedPreferences preferences = getSharedPreferences("Mypref", 0);
preferences.edit().remove("text").commit();
すべての設定の削除:
SharedPreferences settings = context.getSharedPreferences("PreferencesName", Context.MODE_PRIVATE);
settings.edit().clear().commit();
単一設定の削除:
SharedPreferences settings = context.getSharedPreferences("PreferencesName", Context.MODE_PRIVATE);
settings.edit().remove("KeyName").commit();
毎回削除する必要がない場合は、次から手動で削除できます。
設定 -> アプリケーション -> アプリケーションの管理 -> (アプリを選択) -> データの消去またはアンインストール
Android の新しいバージョン:
設定 -> アプリケーション -> (アプリを選択) -> ストレージ -> データの消去とキャッシュの消去
Android共有設定を1行で削除する:-)
context.getSharedPreferences("YOUR_PREFS", 0).edit().clear().commit();
またはapply
非ブロッキング非同期操作の場合:
this.getSharedPreferences("YOUR_PREFS", 0).edit().clear().apply();
すべてのソリューションが完全に機能していないか、完全に機能していないようです
アクティビティ内のすべての SharedPreferences をクリアするには
PreferenceManager.getDefaultSharedPreferences(getBaseContext()).edit().clear().apply();
onCreate の後に Main Activity からこれを呼び出します
注*.apply()
の代わりに使用.commit()
しました。commit(); は自由に選択できます。
ルート化された電話がなくても、adb シェルを使用してこれを行うことができます。唯一の問題は、アプリがデバッグ可能でなければならないことです。
run-as <your package name> <command>
例えば:
run-as com.asdf.blah rm /data/data/com.asdf.blah/databases/myDB.db
あるいは、アプリ パッケージ ルートに移動し、アプリのコンテキストでより多くのコマンドを実行できるようにするコマンドを使用せずに、上記を実行することもできます。
Editor editor = getSharedPreferences("clear_cache", Context.MODE_PRIVATE).edit();
editor.clear();
editor.commit();
デバイスを使用してアプリを手動でアンインストールすることもできます。その後、アプリを再インストールすると、共有設定がリセットされます。
設定からキーと値のペアを削除するには、次のように簡単に実行できます。
getActivity().getSharedPreference().edit().remove("key").apply();
また、共有設定を簡単に操作するためのライブラリも開発しました。次のリンクを見つけることができます
SharedPreferences.Editor remove(String key)の後に commit() または apply()
すべての値を削除するには、
SharedPreferences.Editor clear()の後に commit() または apply()
今朝これをやったところです。コマンド プロンプトから:
adb shell
cd /data/data/YOUR_PACKAGE_NAME/shared_prefs
rm * // to remove all shared preference files
rm YOUR_PREFS_NAME.xml // to remove a specific shared preference file
注: これには、ストック Android 仮想デバイス、Genymotion デバイス、または実際にルート化されたハンドセット/タブレットなどのルート化されたデバイスが必要です。