SharedPreferences
を介してユーザー名やパスワードなどのログイン詳細を保存するためのAndroidアプリケーションは正常に動作しますが、アプリケーションのアンインストール中に使用済みのSharedPreferences
をすべて削除する必要があります。
SavePreferences("one ", "");
SavePreferences("two", "");
LoadPreferences();
private void SavePreferences(String key, String value){
sharedPreferences = getSharedPreferences("TEST", MODE_PRIVATE);
SharedPreferences.Editor editor = sharedPreferences.edit();
editor.putString(key, value);
editor.commit();
}
private void LoadPreferences(){
sharedPreferences = getSharedPreferences("TEST", MODE_PRIVATE);
String strSavedMem1 = sharedPreferences.getString("MEM1", "");
String strSavedMem2 = sharedPreferences.getString("MEM2", "");
}
アプリケーションをアンインストールするときに、このSharedPreferences
を削除します。
問題は設定にありません。劇的にバックアップマネージャーです! .. Android-23はデフォルトでタスクとしてバックアップされるため、クラウドへの設定を含むアプリのデータを保存します。後でアンインストールして新しいバージョンをインストールすると、おそらく復元された設定を使用することになります。これを回避するには、これをマニフェストに追加します(または少なくともマニフェストをデバッグします)。
<application ...
Android:allowBackup="false">
...
</application>
これを読んでください: http://developer.Android.com/guide/topics/data/backup.html
Android > Lint > Security
の下でLintを実行すると、次のこともわかります。
ここで、バックアップのプロセスはブラックボックスのようなものであることに言及するのは良いことです。いつ開始するか、チェックの期間がわからないので、それを無効にするように開発する方が良いでしょう。
====更新====
allowbackup
をfalse
に設定すると、マニフェストの合併の問題が発生する場合があります。この問題を修正するには、次を追加します。
tools:replace="Android:allowBackup"
アプリケーション要素内。 @ shahzain-ALiの功績
または、アプリをアンインストールする前にキャッシュをクリアできます。
それが役立つことを願っています。
SharedPreferences
は、アプリのアンインストールとともに常に削除されます。
アプリケーションをアンインストールすると、アプリケーションが内部メモリで行ったすべての変更が取り消されます。つまり、SharedPreferenceファイル、その他のデータファイル、データベースファイル、アプリケーションはAndroid OSによって自動的に削除されます。
編集:29/04/15:> = 21 API参照 @ Maher Abuthraaの答え
その奇妙ですが、私は次の方法で解決策を見つけました:
xmlns:tools="http://schemas.Android.com/tools"
in マニフェストタグ of Manifest.xmlファイルAndroid:allowBackup="false"
in アプリケーションタグ of Manifest.xmlファイルtools:replace="Android:allowBackup"
in アプリケーションタグ of Manifest.xmlファイルManifest.xmlファイルは次のようになります。
<?xml version="1.0" encoding="utf-8"?><!--suppress ALL -->
<manifest xmlns:Android="http://schemas.Android.com/apk/res/Android"
xmlns:tools="http://schemas.Android.com/tools"
package="com.package">
// Other code
<application
Android:name="com.package.Application"
Android:allowBackup="false"
Android:hardwareAccelerated="true"
Android:icon="@drawable/appicon"
Android:label="@string/application_name"
Android:largeHeap="true"
Android:theme="@style/AppTheme"
tools:replace="Android:allowBackup">
<activity
Android:name="com.package.SplashActivity"
Android:configChanges="orientation|keyboardHidden|screenSize"
Android:label="@string/application_name"
Android:screenOrientation="portrait">
<intent-filter>
<action Android:name="Android.intent.action.MAIN" />
<category Android:name="Android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
// Other code
</application>
</manifest>
終わった。
問題は設定にありません。
このコードを使用して修正してください..........
<application
Android:allowBackup="true"
Android:fullBackupContent="false"></application>
設定allowBackup="false"
は、バックアップと復元の両方からアプリケーションをオプトアウトします。
Android:allowBackup="false"