web-dev-qa-db-ja.com

androidでアプリケーションのアンインストール中に共有設定を削除する方法

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を削除します。

95
shivcena

問題は設定にありません。劇的にバックアップマネージャーです! .. Android-23はデフォルトでタスクとしてバックアップされるため、クラウドへの設定を含むアプリのデータを保存します。後でアンインストールして新しいバージョンをインストールすると、おそらく復元された設定を使用することになります。これを回避するには、これをマニフェストに追加します(または少なくともマニフェストをデバッグします)。

<application ...
        Android:allowBackup="false">
...
</application>

これを読んでください: http://developer.Android.com/guide/topics/data/backup.html

Android > Lint > Securityの下でLintを実行すると、次のこともわかります。

lint warning on backup

ここで、バックアップのプロセスはブラックボックスのようなものであることに言及するのは良いことです。いつ開始するか、チェックの期間がわからないので、それを無効にするように開発する方が良いでしょう。

====更新====

allowbackupfalseに設定すると、マニフェストの合併の問題が発生する場合があります。この問題を修正するには、次を追加します。

tools:replace="Android:allowBackup"

アプリケーション要素内。 @ shahzain-ALiの功績

または、アプリをアンインストールする前にキャッシュをクリアできます。

それが役立つことを願っています。

267
Maher Abuthraa

SharedPreferencesは、アプリのアンインストールとともに常に削除されます。

アプリケーションをアンインストールすると、アプリケーションが内部メモリで行ったすべての変更が取り消されます。つまり、SharedPreferenceファイル、その他のデータファイル、データベースファイル、アプリケーションはAndroid OSによって自動的に削除されます。

編集:29/04/15:> = 21 API参照 @ Maher Abuthraaの答え

17
Dhaval Parmar

その奇妙ですが、私は次の方法で解決策を見つけました:

  1. 追加 xmlns:tools="http://schemas.Android.com/tools" in マニフェストタグ of Manifest.xmlファイル
  2. 追加 Android:allowBackup="false" in アプリケーションタグ of Manifest.xmlファイル
  3. 追加 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>

終わった。

9
Hiren Patel

問題は設定にありません。

このコードを使用して修正してください..........

<application
    Android:allowBackup="true"
    Android:fullBackupContent="false"></application>
4
Mohammad Faizan

設定allowBackup="false"は、バックアップと復元の両方からアプリケーションをオプトアウトします。

 Android:allowBackup="false"
3
Mahendran Candy