Search Results

Search Results for '액티비티' : 4 POSTS

  1. 2010.08.13 액티비티 생명주기 (Activity LifeCycle) (1)
  2. 2010.08.13 액티비티란? (Activity)
  3. 2010.08.13 안드로이드 어플리케이션 (Android Application)
  4. 2010.08.07 투명 액티비티 사용하기 (Transparent Activity)

액티비티 생명주기 (Activity LifeCycle)




안드로이드 액티비티 생명주기 (Android Activity LifeCycle)

- 액티비티는 효율적인 메모리 관리를 위해 생성, 소멸되는 조건인 생명주기를(Lifecycle) 가지고 있다

- 생명주기는 7가지 단계로 구분되며 다음 순서를 기본으로 진행된다
  onCreate(), onStart(), onResume(), onPause(), onStop(), onRestart() 또는 onDestroy()

- 각 상태에 따라 필요한 작업을 메소드를 오버라이드 하여 처리해주면 된다

- 여러개의 액티비티를 이용중 시스템의 리소스가 부족하면 다음상태의 액티비티를 강제로 종료시킨다
  onDestroy() - 1순위, onStop() - 2순위, onPause() - 3순위

- onPause() 상태의 Callback은(실행완료) 보장하지만, onStop()과 onDestroy()는 보장할 수 없다
  (미완료 상태에서 System이 강제종료 시킬 수 있으므로 되도록 onPause()에서 종료를 대비 해야한다)

- 강제종료된 Activity는 리소스가 확보되면 다시 복구 시킨다

- 강제종료시에는 데이터 복원를 대비하여 onPause() 실행 전 onSaveInstanceState(Bundle b) 를 실행시킨다

- 강제종료시에는 onStart() 호출 후 실행되는 onRestoreInstanceState(Bundle b) 또는 
  onCreate(Bundle b) 를 사용하여 복원작업을 수행할 수 있다

- 화면의 Orientation(가로/세로) 변경시 onDestroy()를 호출 후 onCreate()가 실행된다

 

- onCreate()
액티비티가 처음 생성될때와(화면이 회전되어 orientation이 변경될때도 기본으로 실행) 실행되며
레이아웃배치와 변수선언 등 각종 초기화 작업을 구현하는 단계이다
완료 후 onStart()를 호출한다

- onStart()
onCreate() 이후 또는 onRestart()로 다시 시작된 후 처음으로 호출하는 단계이며
화면생성이 완료되고 사용자 입력을 받기 바로 직전의 단계이다
완료 후 onResume()를 호출한다

- onResume()
onResume() 이 실행되면 상호작용이 가능하며 모든준비가 완료되고 액티비티가 완벽하게 활성 상태가 된다.
onPause()에서 다시 시작되었을때 호출하는 단계이기도 하다

- onPause()
상태에서 다른 Activity에 포커스를 넘겨준 후 비활성화(background) 되며 상호작용이 중단된 단계이다
이 상태 이후부터는 언제든지 시스템의 강제종료가 가능하며 이 상태가 완료 되어야 다음 Activity가
활성화(foreground) 되고 이후 이 액티비티는 onStop() 상태가 된다
단, 다음 Activity 의 테마가 translucent 인 투명한 배경의 Activity 와 같이 풀스크린이 아닌
Activity일 경우에는 onStop() 상태가 되지 않고 onPause()를 유지한다
하나 더 덧붙이면, 투명배경의 Activity와 비슷한 Diaglog 의 경우에는 onPause()가 적용되지 않는다

- onStop()
Activity가 사용자에게 보이지 않는 비활성화 상태로 돌아서게 되면 호출하는 단계이다
=> 다른 activity 를 활성화 시켰을때는 background로 onStop() 상태가 유지되며,
=> 현 액티비티에서 finish()를 호출하거나 back key를 이용해 home activity로 돌아갈때는
onStop() 후 onDestroy()를 호출하고
=> 다음 Activity에서 back 하여 현 액티비티로 돌아올때는 onRestart(), onStart(), onResume 순으로 호출한다

- onDestroy()
finish(), finishActivity() 같은 정상적인 종료시에 호출되며, onCreate()에서 호출한 자원의 반납등을 하는 단계이다

- onRestart()
onStop()인 비활성화 상태에서 다시 활성화되는 단계에서 발생한다

액티비티란? (Activity)



안드로이드 액티비티란? (Android Activity)

- 사용자 인터페이스를 구성하는 기본 단위이며 보통 하나의 화면이 하나의 액티비티라고 봐도 무방하다

- 액티비티 매니저에(Activity Manager-AndroidManifest 를 참조하여 관리) 의해 관리되며
  Activity Class를 상속 받아 구성한다

- 한개 이상의 레이아웃과 뷰, 이벤트로 구성되며 한개 이상의 액티비티를 모아
  응용프로그램을(Application) 구현할 수 있다

- 런쳐(Application Launcher) 에 의해 호출되며 (AndroidManifest 내에 정의) 다른 액티비티를 호출할 수 있다 
  (startActivity, startActivityForResult 메소드에 의해 호출되며 onActivityResult 메소드에 의해 결과를 받는다)

- finish 메소드로 종료할 수 있으며 startActivityForResult로 호출한 액티비티를
  종료시키고자 할때는 finishActivity 메소드를 이용한다

- 액티비티를 호출할때에는 인텐트를(Intent) 사용하며 호출한 액티비티는 태스크에(Task) 차곡 차곡 쌓인다

- 액티비티는 생명주기를(LifeCycle) 갖는다

- 액티비티는 연관성을(Affinity) 갖는다

안드로이드 어플리케이션 (Android Application)



안드로이드 어플리케이션 (Android Application)

- 하나 이상의 컴포넌트와 리소스등으로 구성되며 패키지 파일로(android package = .apk파일) 묶여 배포된다.


컴포넌트란? (Component)

- 액티비티(Activity), 서비스(Service), 브로드캐스트 리시버(Broadcast Receiver),
  컨텐트 프로바이더(Content Provider) 로 구성된다.

- 사용하고자 하는 컴포넌트는 AndroidManifest에 미리 정의해 두어야 한다

- 각각의 컴포넌트는 필요할때마다 인스턴스화 시켜 사용할 수 있다

- Content Provider는 ContentResolver 에 의해 활성화 되며 나머지 컴포넌트들은
  인텐트에(Intent) 의해 활성화 된다.


투명 액티비티 사용하기 (Transparent Activity)

안드로이드 투명 액티비티 사용하기 (Android Transparent Activity)



1. AndroidManifest.xml 에 테마 추가하기



2. Source code 에 추가하기
getWindow().setFlags(WindowManager.LayoutParams.FLAG_BLUR_BEHIND, 
   WindowManager.LayoutParams.FLAG_BLUR_BEHIND);