티스토리 뷰

[Android] 안드로이드스튜디오 상태저장하기
(다시킬때 복원하기)

 안드로이드 독학을 시작했습니다. 자바기반이라 언어쪽으로 어려운 점은 없는데, xml구조와 안드로이드만의 특이한 기능들이 많아서 공부할게 꽤 많네요.

 이번 글에서는 안드로이드어플에서 어플(엑티비티)의 생명주기를 이용해서 상태를 저장하는 방법을 알아보도록 하겠습니다. activity는 생명주기(life cycle)를 갖고있는데 간단하게 말하면 어플을 켜둔 상태에서 홈버튼을 누르면 onPause, onStop 매서드가 실행되어 해당 상태가 되고 다시 해당 어플을 키게되면 onStart, onResume 매서드가 실행되면서 해당 상태가됩니다.

 그리고 취소버튼 두 번을 누르게되면 일반적으로 어플이 종료되면서 onDestroy가 호출되며 어플이 완전히 소멸됩니다.

안드로이드 상태저장

 이 글에서 제가 보여드릴 예제는 빨간 네모의 텍스트뷰에 적힌 내용을 어플이 소멸될 때 아니 그 바로 직전에 저장을해서 다시 어플을 킬때 작성하고 있던 내용이 불러와져 저장되어있게 체감을 하게 해주는! 것을 구현해보려고합니다.


 이때 사용하는 것은 SharedPreferences입니다. 사용시 앱내부적으로 데이터(파일)을 가지게되면서 데이터를 저장하거나 불러올 수 있습니다. 개발자는 실제로 파일을 만들필요없이 해당 매서드를 쓰기만 하면됩니다.

save state android

 자 그럼 메인에서 Pause와 Resume이 일어날 때 즉 어플이 중지되거나 다시 시작될 때 데이터를 저장하고 다시 불러옵니다. 당연한 거겠죠? 빨간 네모칸에 있는 매서드는 새로 정의해줍니다.

commint 매서드

 첫 번째로 saveState입니다. 말 그대로 상태를 저장하는 매서드를 구현한 것입니다. SharedPreferences를 사용해서 해당 객체를 사용합니다. 첫번 째 인자로는 저장소의 이름을 주며 그 다음인자는 상수입니다.


 해당 객체로 Editor를 사용할 수 있는데 이 에디터로는 putString 등의 put어쩌고로 데이터를 저장할 수 있습니다. 저장을 하고서는 꼭 commit()를 해주어야 완전히 저장이 완료됩니다.

복구하는 매서드입니다.

 그 다음 재개될 때 데이터를 다시 불러오는 매서드입니다. 똑같이 SharedPreferences를 사용합니다. 해당 객체가 name이라는 데이터를 가지고 있다면 가져옵니다. 그리고 텍스트 박스에 넣어주기만 하면되겠습니다. 그러면 사용자가 다시 켰을 때 원래 쓰고있었던 문장이 보이겠죠.

다 없애는 매서드 입니다.

 그 다음은 저장소를 다 지워버리는 매서드입니다. 여기서는 사용하지 않았지만 개발할 때 참고하시면 좋습니다.


실제로 제가 치는모습다껐다가 하는 모습다시켜도 그대로인 모습

실제로 제가 저의 스마트폰으로 빌드한 뒤에 텍스트 상자에 "저장되라 메세지"라고 저장한 후에 완전히 종료를 한 뒤에 다시 켰는데도 메세지가 저장되있는 것을 알 수 있습니다.

 실 사용예로는 게임을 하다가 전화가 오거나 배터리가 다 나가서 강제로 꺼질 경우에 해당 기능을 사용하게되면 원래 하던 챕터부터 다시 시작할 수 있는 등의 사용자가 안심하고 어플을 사용할 수 있는 환경제공이 가능합니다.

 오늘 글은 여기서 마치며, 다음에도 또다른 유용한 기능을 소개해드릴테니 자주 들러주시기바랍니다 감사합니다.

[Android] 안드로이드 스튜디오 some users have experienced 오류

[유용한 정보/경제·금융] - 비씨카드 아파트관리비 자동납부 서비스로 시간아끼자

[유용한 정보/IT·컴퓨터] - 파워포인트 2016 체험판 무료설치 다운로드 쉽다

댓글
댓글쓰기 폼