2016-01-27 22 views
12

Nexus 6Pデバイスでこの問題が発生したことはありますか?私はこの問題をNexus 6P(Google Fiを実行中)でのみ得ています。ユーザーがアプリケーションをアンインストールするとSharedPreferencesが削除されない

userIsLoggedInのキーはSharedPreferencesの中にあります。

このブロック:

boolean userIsLoggedIn = SharedPrefs.userIsLoggedIn(this); 

// Then in another class... 

public static boolean userIsLoggedIn(Context context) { 
    // For users updating apps, if the previous key-value is a string, convert it to boolean 
    try { 
     return context.getSharedPreferences(LOGIN_FILE, Context.MODE_PRIVATE) 
       .getBoolean(USER_LOGGED_IN, false); 
    } catch (ClassCastException e) { 
     Logger.e(TAG, e.getMessage()); 
     context.getSharedPreferences(LOGIN, Context.MODE_PRIVATE) 
       .edit() 
       .putBoolean(USER_LOGGED_IN, false) 
       .commit(); 
     return context.getSharedPreferences(LOGIN, Context.MODE_PRIVATE) 
       .getBoolean(USER_LOGGED_IN, false); 
    } 
} 

は今、これは新しいアンインストールに falseを返すが、新鮮でこれをデバッグすることは、私はアプリの起動時に、次の取得インストールする必要があります。

enter image description here

ことが重要ならば非ProGuardの有効APK上でデバイスを実行しているとき、私はまた、ProGuardのを実行すると、それは大丈夫実行します。他のデバイスでproguardを実行すると正常に動作します。

+0

他のデバイスで確認しましたか?コードはうまくいくようです。 –

+0

私はログインがコードのどこかで真実だと思います。なぜなら、共有の設定はそのように振る舞いませんので、最初に確認してください。 – KDeogharkar

+0

これは間違いなく問題ではなく、このコードが最初に実行されます。他の8台のデバイスで確認済みです。 – AndyRoid

答えて

36

Nexus 6PはAndroid Mを実行しているので、Automatic Backupsが問題だと思います。

私はあなたがそれを停止するためにallowBackupを使用することができますだと思います。

チェックこの回答を:アンドロイドMで、彼らはGoogleのドライバでアプリケーションのバックアップを保つのバージョン上記https://stackoverflow.com/a/32010582/336312

+0

ありがとう、今これをテストしてください。 – AndyRoid

+0

ようこそ。 allowBackへのリンクを追加して私の答えを編集しました。私はそれを止めることができると思います。 – code2be

+0

これは問題でしたありがとうございました! – AndyRoid

3

、あなたが使用してこれを無効にすることができ、 プロジェクトマニフェストファイルにアクセスしてくださいアプリケーションの下セクションでは、android:allowBackup="true"を設定あなたは行くのが良いです。

関連する問題