“Android 로봇은 Google에서 제작하여 공유한 저작물을 복제하거나 수정한 것으로 Creative Commons 3.0 저작자 표시 라이선스의 약관에 따라 사용되었습니다.”
둘 다 내부에 데이터를 저장한다는 점은 동일하다.
하지만 작동법을 살펴보면 용도가 확연하게 구분된다.
savedInstanceState
Activity LifeCycle에 종속되지 않고
Application LifeCycle에 종속된다.
이 말은 즉, Activity가 종료되더라도 저장된 데이터는 사라지지 않지만,
Application이 종료되면 저장되있던 데이터도 사라진다.
SharedPreference
키와 값 쌍으로 저장하는 방식으로 내부적으로 xml 파일 형식으로 저장된다. 파일 형식으로 저장되다보니 Application이 종료되어도
저장된 데이터는 남아있다.
저장한 데이터가 앱이 종료된 뒤에도
남느냐 남지 않느냐의 차이가 가장 큰 것 같다.
위에서 서술했듯이..
Activity가 종료되어도 데이터가 보존되어야하는 설정값 같은 것들은
SharedPreference를 사용하는 것이 좋고,
화면이 회전같은 Activity가 재실행 되거나
Activity 전환 등
Activity 데이터를 유지하고 싶을 때는
savedInstanceState를 사용하는 것이 좋다.
결국 용도에 따라 취사선택하여 사용하면 되는 것이다.
화면 회전 얘기를 하니 onConfigurationChaneged가 생각나는데
이 것은 나중에 포스팅 해보도록 하겠다.
개인적으로 공부했던 것을 바탕으로 작성하다보니
잘못된 정보가 있을수도 있습니다.
인지하게 되면 추후 수정하겠습니다.
피드백은 언제나 환영합니다.
읽어주셔서 감사합니다.