• 카테고리

    질문 & 답변
  • 세부 분야

    모바일 앱 개발

  • 해결 여부

    해결됨

datastore 관련 질문있습니다.

23.07.09 16:41 작성 조회수 244

0

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

답변 1

답변을 작성해보세요.

0

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

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로 잘 뜨고 있습니다.

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

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

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