2016-09-05 3 views
2

내 로그인 시스템은 SharedPreferences를 사용하여 사용자에 대한 정보를 저장합니다. 로그인 시스템의 주요 두 가지 변수는 다음과 같습니다재설치 후 응용 프로그램 재생

  • loggedin - 부울
  • 아이디 - (DB를에 기본 키)

사용자가 로그인 로그인있어 사용자 아이디의 INT, loggedin은 1로 설정되고 userID는 DB에서 가져온 사용자 ID로 설정됩니다. 로그 아웃 버튼을 누르면 로그인은 0으로 설정되고 사용자 ID는 null로 설정됩니다.

상황 닫기

  • 내가 로그인 응용 프로그램을 닫고 여전히 내가 다음에 로그인 로그 아웃
  • 올바른 계정에 로그인, 미세 = 다시 열립니다, & 잘 = 응용 프로그램을 다시, 로그인 화면이 나타나면
  • 캐시를 무효화하고 android studio = fine으로 다시 시작하면 올바른 계정에 로그인 한 상태로 유지됩니다.

여기가 잘못되었습니다. 로그인 한 다음 Android 휴대 전화에서 앱을 제거하고 앱을 실행하면 앱이 실행되고 DB에 더 이상 존재하지 않는 정말로 오래된 계정에 로그인합니다. 왜 이런 일이 일어나고 있는지 알 수 없습니다.

내 유일한 생각은 제거되지 않는 장치에 저장된 사용자 ID가 있다는 것입니다.하지만 이는 완전히 틀릴 수 있습니다. 어떤 아이디어?

코드 전체에 몇 가지 로그 태그를 추가했으며 앱을 제거하기 전에 사용자 ID가 정확하며 재설치 한 경우 이전 로그 태그가 추가되었습니다.

답변

3

Shared Preferences은 앱 제거와 함께 항상 삭제됩니다. 그러나 이후 android-21 백업 작업은 기본적으로 클라우드 환경 설정을 저장합니다. 나중에 제거한 다음 새 버전을 설치하십시오. 복원 된 환경 설정을 사용할 것입니다. 이를 피하려면 manifest (또는 적어도 디버그 용으로 명시)에 추가하십시오. 에 개발을위한 그래서 더 ... 시작할 때 당신이 모르는 .. http://developer.android.com/guide/topics/data/backup.html

그것은 백업의 과정이 블랙 박스 여기에 언급하는 것이 중요하고, 검사 사이의 기간 : -

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

이 읽기 그것을 해제하십시오.

+0

그걸 정렬했는데,이게 뭔지 알았지 만 찾을 수 없었어 :) 고마워! –

관련 문제