2016-09-05 8 views
2

私のログインシステムはSharedPreferencesを使ってユーザーに関する情報を保存します。ログインシステムのための主要な2つの変数は以下のとおりです。再インストール後にアプリが再生される

  • LOGGEDIN - ブール
  • ユーザーID - (DBの主キー)

ユーザーがログインするにはログインしていますユーザーIDのint型、 loggedinは1に設定され、userIDはDBからフェッチされたユーザーIDに設定されます。ログアウトボタンが押されると、loggedinは0に設定され、userIDはnullに設定されます。

状況:近い

  • 私は、ログインアプリを閉じて、それはまだ私は、その後、ログインログアウト
  • 正しいアカウントにログインして、罰金= repoen、&は罰金=アプリを再度開き、ログイン画面が表示されます
  • 私はキャッシュを無効にし、アンドロイドスタジオで再起動すると、正しいアカウントにログインしたままです。

は今ここに間違って起こっているの一つだ:私がログインした場合、その後、アンドロイドスタジオアプリが起動し、ログにもはやDB上に存在している本当に古いアカウントに自分の携帯電話やプレスランオフアプリをアンインストールします。なぜこれが起こっているのか分かりません。

私の唯一の考えは、削除されていないデバイスに格納されているユーザーIDですが、それは完全に間違っている可能性があります。何か案は?

コード全体にいくつかのログタグが追加されています。アプリをアンインストールする前に、正しいユーザーIDと、再インストールしたときに古いものがあります。

答えて

3

Shared Preferencesは、アプリをアンインストールすると同時に消去されます。 しかし、以来android-21バックアップタスクはデフォルトでクラウドに設定を保存します。後でアンインストールして新しいバージョンをインストールしてください。あなたはおそらく復元された設定を使うつもりです。これを避けるには、manifest(または少なくともデバッグのためのマニフェスト)にこれを追加してください。 -

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

この読む:それはバックアップのプロセスがブラックボックスであるここで言及することが重要ですhttp://developer.android.com/guide/topics/data/backup.html

を..あなたはそれが起動したときに知っている、とチェック間の期間はありません...ので、より良いに開発するための無効にします。

+0

これはソートされていますが、このようなものだと分かっていましたが、何が見つかりませんでした:)ありがとう! –

関連する問題