개발/AOS

안드로이드 액티비티란?

728x90

액티비티는 사용자에게 UI가 있는 화면을 제공하는 앱 컴포넌트이다.

화면에 출력되는 UI 구성의 가장 기본이 되는 요소애플리케이션 구성 요소로서, 일을 하기 위해 상호작용할 수 있는 화면을 제공하고

액티비티마다 창이 하나씩 주어져 이곳에 사용자 인터페이스를 끌어올 수 있다. 이 창은 일반적으로 화면을 가득 채우지만, 작은 창으로
만들어 다른 창 위에 띄울 수도 있다.

 

 

  • onCreate(Bundle savedInstanceState) - 이 메서드는 액티비티 인스턴스가 최초로 생성될 때 호출되며, 대부분의 초기화 작업을 진행한다. 메서드의 매개변수(인자)는 동적 상태 정보를 포함할 수 있는 Bundle 객체가 전달된다. 그리고 동적 상태 정보는 직전에 생성되었다가 소멸된 동일한 액티비티의 인스턴스로부터 받으며, 일반적으로 사용자 인터페이스의 상태와 관련되는 데이터다.

  • onRestart( ) - 액티비티가 런타임 시스템에 의해 이전에 중단되었다가 막 다시 시작될 때 호출된다.

  • onStart( ) - 예외없이 onCreate( )나 onRestart( ) 메서드가 호출된 후 바로 호출된다. 그리고 액티비티의 사용자 인터페이스가 곧 사용자에게 보이게 될 것이라고 액티비티에게 알려준다. 만약 액티비티 스택의 맨 위로 이동하면 이 메서드가 호출된 다음에는 onResume( )가 호출될 것이다.

  • onResume( ) - 액티비티가 액티비티 스택의 맨 위에 있으며, 사용자가 현재 상호 동작하는 (실행 중인)액티비티임을 알려준다. // 액티비티 스택의 맨 위에 있는 액티비티가 현재 화면에 보이는 액티비티다.

  • onPause( ) - 이 메서드 호출 다음에는 onResume( ) 또는 onStop( ) 메서드 중 하나가 호출된다. 액티비티가 포그라운드로 돌아가는 경우 계속 실행하기 위해 onResume( )가 호출되며, 액티비티의 사용자 인터페이스를 사용자가 볼 수 없게 되면 중단되면서 onStop( )가 호출된다.
     이 메서드 내부에서는 액티비티에서 필요한 영속적 데이터(콘텐트 제공자, 데이터베이스, 파일에 저장되는 데이터)를 저장하는 일을 해야 한다. 이 메서드는 또한 애니메이션과 같이 CPU를 지나치게 사용하는 작업들을 중단해야 한다.

  • onStop( ) - 이 메서드가 호출될 때는 액티비티가 더 이상 사용자에게 보이지 않는다. 이 메서드 호출 다음에는 onRestart( ) 또는 onDestroy( )가 호출된다. 액티비티가 다시 포그라운드로 들어가면 onRestart( )가 호출되며, 액티비티가 종료될 때는 onDestroy( )가 호출된다.

  • onDestroy( ) - 이 메서드는 액티비티가 막 소멸되려고 하거나 혹은 자발적으로 소멸될 때 호출된다. 액티비티가 자신의 작업을 완료하고 finish( ) 메서드를 호출했거나 또는 메모리를 해제하거나 구성 변경(예를 들면 가로/세로 화면 변경)이 생겨 런타임이 액티비티를 종결하기 때문이다. 그러나 액티비티가 종료될 때 항상 onDestroy( ) 메서드가 호출되는 것은 아니라는 점에 유의하자.



출처: https://mattlee.tistory.com/73 [waca's field]

 

 

프레그먼트란?

 

큰 화면을가진 안드로이드 태블릿 디바이스가 나오면서, 앱티비티 만으로는 복잡성을 커버하기 어려웠다.

API 11, 허니컴부터 Fragment가 도입됨. 

앱티비티 내에 생성되는 UI 구성을 여러 개의 모듈 단위로 작성할 수 있도록 해주는 기능

 

자체 수명 주기를 가지고 자체 입력 이벤트를 받으면서 액티비티 실행 중 추가 및 제거가 가능한 액티티티의 모듈식 섹션

다른 액티비티에서 재사용 할 수 있는 하위 액티비티와 같은 개념