SharedPreference와 savedInstanceState의 차이

지프치프·2021년 9월 25일
0

Android

목록 보기
16/85
post-thumbnail

“Android 로봇은 Google에서 제작하여 공유한 저작물을 복제하거나 수정한 것으로 Creative Commons 3.0 저작자 표시 라이선스의 약관에 따라 사용되었습니다.”


😕 차이가 뭘까..

둘 다 내부에 데이터를 저장한다는 점은 동일하다.

  • savedInstanceState (Bundle)
  • SharedPreference (xml)

하지만 작동법을 살펴보면 용도가 확연하게 구분된다.


👀 동작이 다르다.

  • savedInstanceState
    Activity LifeCycle에 종속되지 않고
    Application LifeCycle에 종속된다.
    이 말은 즉, Activity가 종료되더라도 저장된 데이터는 사라지지 않지만,
    Application이 종료되면 저장되있던 데이터도 사라진다.

  • SharedPreference
    키와 값 쌍으로 저장하는 방식으로 내부적으로 xml 파일 형식으로 저장된다. 파일 형식으로 저장되다보니 Application이 종료되어도
    저장된 데이터는 남아있다.

저장한 데이터가 앱이 종료된 뒤에도
남느냐 남지 않느냐의 차이가 가장 큰 것 같다.


🥴 그래서 용도는?

위에서 서술했듯이..
Activity가 종료되어도 데이터가 보존되어야하는 설정값 같은 것들은
SharedPreference를 사용하는 것이 좋고,

화면이 회전같은 Activity가 재실행 되거나
Activity 전환 등
Activity 데이터를 유지하고 싶을 때는
savedInstanceState를 사용하는 것이 좋다.

결국 용도에 따라 취사선택하여 사용하면 되는 것이다.

화면 회전 얘기를 하니 onConfigurationChaneged가 생각나는데
이 것은 나중에 포스팅 해보도록 하겠다.

개인적으로 공부했던 것을 바탕으로 작성하다보니
잘못된 정보가 있을수도 있습니다.
인지하게 되면 추후 수정하겠습니다.
피드백은 언제나 환영합니다.
읽어주셔서 감사합니다.

profile
지프처럼 거침없는 개발을 하고싶은 개발자

0개의 댓글