도래울

안드로이드 Activity LifeCycle 본문

개발/Android

안드로이드 Activity LifeCycle

도래울 2016. 2. 5. 13:06

Components of Application

 

Activities

사용자 혹은 OS가 실행하는 코드이다. 

액티비티가 실행을 멈춘 상태에서 OS가 메모리 절약을 위해 종료를 할 수 있다.

 

Services

OS의 서비스, 데몬 역할을 수행하며, 모바일 기기가 셧다운 되기 전까지 백그라운드에서 실행된다

예) MP3 로 노래를 듣는 동안 사용자는 다른 애플리케이션을 실행 할 수 있다.

 

Broadcast and Intent Receivers

다른 애플리케이션의 요청에 응답하는 역할을 수행.

Broadcast Receiver

시스템 전역에 발생하는 이벤트에 응답한다. (안들이드, 타 애플리케이션)

 

Intent Receiver

다른 액티비티로 부터의 데이터, 서비스 요청에 대한 실행 코드

 

 

Content Providers

다른 액티비티, 서비스와 데이터를 공유하기 위해 작성된다. 표준 UI form이나 URI를 통해 요청된다.

예) 주소록 데이터를 요청: content://contacts/people

즉, content provider api를 이용해 content에 CRUD 메소드 사용이 가능하다.

 

모든 애플리케이션이 안드로이드 콤포넌트를 작성하고 개발하기 보다는 URI와 Intents를 유연하게 조합해 사용하는 걸 바란다.

 

Activity Lifecycle

출처: 안드로이드 레퍼런스

 

onCreate(): Activity가 처음으로 생성될 때. view, 데이터 등 초기화 관련

onStart(); 화면에 보이기 전에 호출, 완료되면 화면 전면에 액티비티가 나타나며 onResume()으로 전환된다. 만약 Activity가 실해에 적절치 않으면 onStop()으로 전이된다.

onResume():

onPause():

onStop():

onDestroy():

 

 

Android Service LifeCycle

Service도 Activity와 거의 유사하지만, 몇몇 점에서 다르다.

 

  • onCreate(), onStart() : 서비스는 클라이언트가 Context.startService(Intent) 호출시 시작하여 서비스가 존재하지 않으면 안드로이드는 onCreate() 메소드를 호출하고 onStart()가 뒤 따른다. 만약 서비스가 실행중이라면 onStart()메소드가 호출된다.
  • onResume(), onPause 와 onStop() 은 필요치 않다.
  • onBind(): 클라이언트가 서비스와 영속적 연결관계릉 유지하고자 한다면 Context.bindService를 호출한다.
  • onDestroy(): 서비스 종료시 호출.


Comments