Recent Posts
Recent Comments
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 | 29 |
30 | 31 |
Tags
- hyperlink 쿼리스트링 바인딩
- ASP.NET 회원가입
- ASP.NET 방명록
- prototype
- jsp
- Oracle 10g
- ORA-00942
- 객체생성
- json
- 이벤트 처리
- DataList컨트롤
- Repeater
- XML
- Ajax댓글
- ajax
- Ajax한글 처리문제
- 우편번호검색
- ASP.NET
- 자바스윙
- 자동완성기능
- 웹표준
- ASP.NET Error
- JDK1.5
- 스크립트릿
- JavaScript
- 테이블또는 뷰가 존재하지 않습니다.
- RowCount 폐이징
- prototype.js
- 페이지 간 게시
- SQL 명령어가 올바르게 종료되지 않았습니다.
Archives
- Today
- Total
IT 쟁이
Activity 생명주기 본문
Activity 생명주기
* 스택상의 액티비티는 다음 3가지중 하나이다.
* 메서드 설명
onStart(), onStop(), onDestory() 구현하는 경우가 많지 않으나, onPause() 메서드는 대부분의 경우 구현해야 한다.
시스템이 onPause() 호출된 이후를 Killable 상태라고 하며 이 때 시스템은 언제든지 액티비티를 강제로 종료할 수 있다.
강제 종료당할경우 onStop이나 onDestory가 호출되지않으므로 실질적으로 보장된 생명주기는 onPause메서드가 마지막 이다. onPause()메서드에서 중요한 정보들을 저장해야 된다.
또 시스템이 액티비티를 중지하기전에 onSaveInstanceState 메서드를 호출하여 임시적인 데이터를 저장할 기회를 제공하며 이때 Bundlle 객체에 필요한 데이터를 저장하고 , 다시 액티비티가 재시작할경우 onCreate메서드에 Bundle객체를 이용하여 onRestoreInstanceState 메서드에서 Bundle객체에서 저장한 정보를 복원하면 강제종료되지 않은것 처럼 복구가능하다.
-Android application은 멀티태스킹을 지원하나 자원이 넉넉하지 않으므로 여러가지 제약이 따른다.
-Android runtime이 각 애플리케이션의 프로세스와 그 안에 있는 각 Activity를 관리한다.
-Activity 시작, 실행, 활성, 비활성화, 정지, 종료되는 일련의 상태를 순환한다.
-Activity Stack 으로 관리한다. Stack의 Activity는 넣고 빼기만 할 뿐 순서가 바뀌지는 않는다.
* 스택상의 액티비티는 다음 3가지중 하나이다.
-실행(active, running): 사용자가 직접 사용하는 상태이다. 스택의 제일 위에 있으며 화면상에 서도 역시 제일 위에 있다. 입력 포커스를 가지며 사용자의 입력을 직접 처리한다.
- 일시 정지(pause) : 포커스를 잃었지만 사용자에게는 보이는 상태이다. 위쪽에 다른 액티비티가 있지만 화면 전체를 다 가리지 않았거나 반투명한 경우가 이에 해당한다. 살아 있는 상태와 같지만 시스템에 의해 강제 종료될 수도 있다.
-정지(stopped) : 다른 액티비티에 의해 완전히 가려진 상태이며 사용자 눈에 보이지 않는다. 그러나 모든 정보를 다 유지하고 있으므로 언제든지 다시 활성화될 수 있다. 시스템은 메모리가 부족하면 정지 상태의 액티비티를 언젠든지 강제 종료할 수 있다.
* 메서드 설명
onStart(), onStop(), onDestory() 구현하는 경우가 많지 않으나, onPause() 메서드는 대부분의 경우 구현해야 한다.
시스템이 onPause() 호출된 이후를 Killable 상태라고 하며 이 때 시스템은 언제든지 액티비티를 강제로 종료할 수 있다.
강제 종료당할경우 onStop이나 onDestory가 호출되지않으므로 실질적으로 보장된 생명주기는 onPause메서드가 마지막 이다. onPause()메서드에서 중요한 정보들을 저장해야 된다.
또 시스템이 액티비티를 중지하기전에 onSaveInstanceState 메서드를 호출하여 임시적인 데이터를 저장할 기회를 제공하며 이때 Bundlle 객체에 필요한 데이터를 저장하고 , 다시 액티비티가 재시작할경우 onCreate메서드에 Bundle객체를 이용하여 onRestoreInstanceState 메서드에서 Bundle객체에서 저장한 정보를 복원하면 강제종료되지 않은것 처럼 복구가능하다.
Comments