SharedPreference와 savedInstanceState의 차이

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

Android

목록 보기
16/90
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개의 댓글

관련 채용 정보