안드로이드 activity에 관한 정리
- 최초 등록일
- 2011.09.06
- 최종 저작일
- 2011.09
- 29페이지/ MS 파워포인트
- 가격 1,500원
소개글
안드로이드의 activity에 관한 설명이나 상태에 따른 설명
주기 등을 설명
목차
없음
본문내용
액티비티 라이프사이클
액티비티 정지/일시정지(3)
이를 방지하기 위해 메모리 부족 등으로 "어쩔 수 없이" 액티비티를 종료해야 하는 경우 onSaveInsstanceState() 메소드가 호출되며 액티비티의 상태를 Bundle 형태로 저장하게 됩니다. 따라서, onSavedInstanceState() 메소드는 항상 호출되지 않으며, 만약 호출된다면 프로세스가 종료되기 전, onPause() 이후 혹은 onStop() 이후에 호출될 수 있습니다.
onSaveInstanceState() 메소드를 통해 저장된 상태는 Bundle 객체 형태로 저장되어 있다가, 나중에 해당 액티비티를 다시 실행할 때 onCreate()메소드 및 onRestoreInstanceState()메소드에서 액티비티가 강제로 종료될 때의 상태로 액티비티를 복원하게 됩니다.
onCreate() 메소드와 onRestoreInstanceState() 모두 Bundle 객체를 인자로 받고 있으며, 실제로 액티비티가 강제 종료될 때 저장된 상태정보가 담겨있는 Bundle 객체의 정보를 동일하게 전달받게 됩니다. 따라서 액티비티 상태의 복구는 두 메소드 모두에서 처리해줄 수 있으며, 상황에 따라 적합한 메소드에서 상태를 복원해주는 코드를 넣어주면 됩니다.onRestoreInstanceState() 메소드 역시 항상 호출되는 메소드는 아니며, 호출된다면 onCreate() 메소드 이후에 호출되게 됩니다.
즉, 위의 두 메소드는 액티비티가 "강제로" 종료되었을 때 혹은 그 후 액티비티를 다시 실행시킬 때만 실행되므로, 만약 액티비티가 시작하고나 종료될 때 해 주어야 할 작업이 있다면 저 두 메소드를 오버라이드하는 대신 onCreate(), onStop() 및 onDestroy()메소드를 오버라이드한 후 그 안에 코드를 구현해야 안정적으로 해당 작업을 처리하줄 수 있습니다.
참고 자료
없음