출처: http://pgm-progger.blogspot.kr/2011/04/blog-post_6346.html
시스템에서 리소스가 부족하게 되면, 내부적으로 백그라운도 상태의 액티비티를 종료하게 됩니다.
이렇게 종료되면 현재 상태를 잃고, 다시 실행될때는 초기화 된 화면이 뜨게 됩니다.
이런 상황에서, 어떤 내용을 입력하다가, 잠시 다른 앱을 실행한 상태에서, 다시 돌아왔을 때
방금 입력했던 내용을 보존하려면, Bundle 클래스를 이용하여,
이 클래스에 데이터를 저장했다가, 복원 이벤트 핸들러에서 Bundle 클래스에 저장했던 내용을
다시 가져와서 복원처리를 해주시면 됩니다.
먼저 갑자기 강제종료되는 시점에 호출되는 이벤트 핸들러는 액티비티 클래스의
onSaveInstanceState 메소드 입니다.
그리고 이 메소드의 인자가 Bundle 객체가 넘어오게 됩니다.
이 Bundle 객체에 현재 저장할 내용들을 저장하시면, 다음에 다시 앱을 실행했을때,
onCreate 메소드나 onRestoreInstanceState 메소드의 인자에 강제 종료시에 저장했던
Bundle 객체를 넘겨주게 됩니다.
이전 데이터를 가지고 있는 Bundle 객체를 onCreate 메소드나 onRestoreInstanceState
메소드에서 읽어와서, 데이터를 추출하여, 해당 복원 작업을 해주시면 됩니다.
먼저 강제종료시에 저장했던 데이터를 가져와서 복구하는 방법은 다음과 같습니다.
@Override { {
|
시스템이 강제 종료시에 다음 이벤트 핸들러가 호출되고, 그 안에 저장하는 처리를 해줍니다.
@Override { |
이런식으로 강제종료시에 액티비티의 상태를 저장했다가 복구하는 내용을 구현하시면 됩니다.
그럼 모두들 즐프하세요.. ^^
'IT_Programming > Android_Java' 카테고리의 다른 글
안드로이드 액티비티와 태스크 (0) | 2014.06.05 |
---|---|
Parcelable 를 구현할 때 주의점 (ArrayList) (0) | 2014.06.02 |
[펌] Android MediaCodec과 MediaMuxer! API 살펴보기 (0) | 2014.05.30 |
안드로이드의 RTSP 문제로 인한 HTTP 기반 MP4로의 전환 (0) | 2014.05.30 |
Media Playback - 안드로이드에서 RTSP 플레이어 개발 관련 (0) | 2014.05.30 |