인프런 영문 브랜드 로고
인프런 영문 브랜드 로고

인프런 커뮤니티 질문&답변

sophiaj0328님의 프로필 이미지
sophiaj0328

작성한 질문수

[중급편] 코인 가격 모니터링 앱 제작 (Android Kotlin)

처음 접속하는지 아닌지 Flag 값 적용 (DataStore)

datastore 관련 질문있습니다.

해결된 질문

작성

·

347

0

처음 코드를 따라칠 때는 FIRST_FLAG가 처음 접속하는 유저이면 false고 처음 접속하는 유저가 아니면 true로 잘 바뀌고 화면 분기도 제대로 작동했습니다. 하지만 뒤에 수업을 들으면서 코드를 추가하고, 몇번 앱을 지웠다 깔았는데 어느 순간부터 앱을 지우고 다시 깔아도 FIRST_FLAG가 true로만 뜹니다. 수동으로 FIRST_FLAG를 false로 바꾸면 값도 바뀌고, 다른 기기에서 앱을 실행해보니까 잘 작동되는데 제 핸드폰 문제일까요? 혹시 FIRST_FLAG의 초기값을 false로 설정하는 방법이 따로 있을까요? 코드는 정확히 똑같이 따라쳤습니다 ㅠㅠ

답변 1

0

개복치개발자님의 프로필 이미지
개복치개발자
지식공유자

코드와 log 데이터를 어떻게 확인하셨는지 좀 더 자세히 알려주시겠어요?

sophiaj0328님의 프로필 이미지
sophiaj0328
질문자

IntroViewModel에 Timber.d(getData.toString())로 값을 확인해보고 있는데 앱을 지웠다가 실행해도 true로 되어있습니다. 수동으로 false로 바꿔보았던 건 MyDataStore에 있는 setupFirstData함수에서 preferences[FIRST_FLAG] = true가 아니라 false로 바꾸고, setupFirstData함수를 MainActivity에서 실행해보았습니다. 그랬더니 false로 바뀌는 것을 확인할 수 있었습니다.

https://drive.google.com/file/d/1OSWCwH7Fo2-_IliWubm45Ry_TQXtwN1L/view?usp=sharing

제 코드입니다. 몇 번을 확인해도 코드는 똑같은 것 같은데 제가 뭘 놓치고 있는걸까요..

개복치개발자님의 프로필 이미지
개복치개발자
지식공유자

image

실행해보니 처음에 false로 잘 뜨고 있습니다.

앱을 지우고 에뮬레이터를 새롭게 해도 마찬가지인가요?

로그와 스크린샷으로 좀 더 자세히 알려주세요.

sophiaj0328님의 프로필 이미지
sophiaj0328
질문자

아무래도 앱을 삭제해도 데이터가 남아있는 것 같아서 구글링 해봤더니 AndroidManifest.xml 파일에서 android:allowBackup="false"를 해주면 앱을 삭제해도 데이터가 남아있는 것을 해제해준다는 솔루션을 찾았습니다... 이제야 제대로 작동하네요 ㅠㅠ 답변 감사합니다!

sophiaj0328님의 프로필 이미지
sophiaj0328

작성한 질문수

질문하기