@액티비티의 종료
액티비티가 소멸되는 상황은 아래와 같다
(이밖에도 더 있다)
ㄱ. 사용자가 Back 버튼을 누른다
ㄴ. 액티비티가 finish()를 호출한다
ㄷ. 액티비티가 정지되어있는 상태에서 전면에 있는 액티비티가 더많은 리소스를 요구하여
시스템이 메모리 회수를 위해 액티비티를 소멸시킨다.
우리는 액티비티가 더 이상 필요없을 때 종료를 한다
하지만 액티비티의 상태는 때때로 저장되어야 하는 경우가 있다
그러한 경우는 다음과 같다
1. 예기치 못하게 시스템에 의해 강제 종료된 경우 지금 진행중이던 데이터를 다시 불러오기 위해 저장
2. 그 순간에만 필요한 데이터가 아닌 축적, 저장 되어야 하는 데이터인 경우(ex. 게임 캐릭터 정보)
@상태저장
ㄱ,ㄴ : 액티비티가 정상적으로 종료되는 경우 영구적으로 저장할 필요성이 있는 데이터는 onPause()에서
SharedPreference를 이용하여 저장을 해준다
ㄷ : 시스템에 의해 강제종료 되는 경우 onSavedInstaceState() 에서 저장을 한다.
또한 onRestoreInstanceState() 에서 저장된 데이터를 다시 로드한다 ( 화면을 전환하는 경우도 이에 해당)
* 저장 방법
1. SharedPreference - 파일을 생성하여 저장하는 방법 (영구 저장)
2. Sqlite - 안드로이드에서 지원하는 데이터베이스를 이용하여 이 역시 파일형태로 저장(영구 저장)
(SharedPreference vs Sqlite - http://www.androidside.com/bbs/board.php?bo_table=b49&wr_id=118449)
3. onSavedInstanceState() 에서 Bundle에 저장 - 앱이 죽기 전까지 만 데이터가 존재
'App > Android' 카테고리의 다른 글
Android - Android SDK 설치 및 설정 (0) | 2019.01.15 |
---|---|
Android - 구글 로그인(Google Sign in Api) 이용 (5) | 2018.10.13 |
Android - 갤러리 만들기(Ncloud서버 , 스프링부트 서버) (0) | 2018.09.22 |
Android - Service (0) | 2018.09.05 |
Android - Content Resolver (0) | 2018.09.05 |