마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

안드로이드 액티비티 상태 저장하는방법

0 추천
안드로이드 개발 초보자 인데요..

어플을 실행후 종료하면 전부 초기화가 되어있는데

제가 버튼을 클릭했다라든지, 버튼에 효과를 줬다든지 등등

어플을 실행한후 제가 사용한 상태를 다음에 다시 어플을 실행하라도

그대로 나오게끔 저장하려면 어떠한 방법을 써야하나요?

제가알기론 onSavedInstanceState()는 일시적인 저장으로 알고 있고

SharePrefereneces는 영구적이긴하나 한번 저장한것을 지속적으로

기억하는 것으로 알고있습니다.

그렇다면 데이터베이스내에 저장해야하는건가요?

SQLlite에 텍스트뷰나 에딧텍스트 같은 String들이 아닌

이미지뷰나 버튼의 상태 등등 현재 액티비티의 상태를 영구적으로

저장할 수 있는 방법이 있는건가요?

어떤식으로 해야할지 감이 오지 않아서 질문드립니다. ㅠㅠ

많은 답변 부탁드려요..
부개동지킴이 (590 포인트) 님이 2013년 10월 28일 질문
부개동지킴이님이 2013년 10월 28일 수정

2개의 답변

0 추천
SharedPreferences가 한 번 저장한 것을 지속적으로 저장한단 얘기는 첨 듣는걸요?

SharedPreferences.Editor 가 있습니다!
libre2k (7,420 포인트) 님이 2013년 10월 29일 답변
0 추천
저 같은 경우 sharedpreference에는 간단한 string이나 상태(true, false, checked, unchecked) 정도의 정보만 저장을 하고

저장할 내용이 좀 되거나 리스트 성으로 사용할 정보라면 db를 사용합니다.

어떤 이유로 사용하냐에 따라 약간 틀리겠지요... 그리고 본인이 사용하기 편하다면(성능적으로 크게 문제없다면) 그 방법 사용하는게 좋지 않을 까 합니다.
wind (2,240 포인트) 님이 2013년 10월 29일 답변
음 그니깐 버튼이나 이미지뷰의 변화에대한것을 저장해서 실행시마다 초기화가안되고 보여지게하려면 어떻게해야하는거죠?
정확히 사용하시는 목적은 모르겠지만 버튼의 상태가 변화한다는 말은 selector를 달아서 눌렸을때 이미지가 다른걸 보여준다는 의미인가요? 그리고 이미지뷰에 내용이 변했다는건 버튼을 눌렀을때 보여지는 이미지가 다르게 보여주게하고 그러시겠다는 건지요??
안드로이드 라이프 사이클과 별개로 무조건 이전에 되어있던 상태로 들어오고 싶으시다면 버튼이 눌렸는지 안눌렸는지 값과 이미지 뷰에 보이게 한 이미지의 경로를 가져 sharedpreference에 저장을 해두시고 다시 앱을 실행할때 sharedpreference에 값이 ""(공백이나), null 이 아닌지 체크해서 그 값을 셋팅해주시면 될듯 한데요.......
네 selector 를 사용하다는게 맞고 이미지뷰 같은경우에는 처음에 예시로 사진을 넣어놓고 갤러리나 카메라에서 찍은 사진을 다시 그위에 덮어씌운뒤 그 덮어씌워진 사진이 지속적으로 남도록 하려고 하고있어요.
그러면 sharedpreference에 저장하면되는건가요?
그렇다면.. 버튼값을 뭐로 줘야할지 모르겟네요 ㅠ
...