액티비티
앱을 실행했을 때 보여지는 화면을 구성할 수 있도록 해주는 구성요소 중 하나입니다.
앱은 한 개의 액티비티만을 가질수도 있고 수십 개 이상을 가질수도 있습니다.
일반적으로 액티비티는 화면 전체를 가득 채우지만, 다른 액티비티 위에 띄울수도 있습니다.
또한 액티비티에서 다른 액티비티를 실행할 수도 있으며, 뒤로가기 버튼으로 이전 액티비티로 돌아갈 수도 있습니다.
액티비티 메소드
액티비티는 기본적으로 다양한 상태를 가질 수 있으며, 상태에 따라 액티비티의 특정 메소드가 호출됩니다.
액티비티의 사앹에 따라 호출되는 메소드를 액티비티의 '생명주기 메소드'라고 부릅니다.
이러한 액티비티는 안드로이드 Activity 클래스를 상속한 클래스를 말합니다.
Activity 클래스는 안드로이드가 발전하면서 하휘 호환성 등 다양한 처리를 위해 계속 변화되어왔고
안드로이드 스튜디오에서 프로젝트를 생성하면 기본적으로 아래처럼 AppcompatActivity 클래스를 상속한 MainActivity 클래스가 생성됩니다.
1
2
3
4
5
6
7
8
9
10
11
12
13
|
package com.example.myapplication;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
}
|
cs |
여기에서 onCreate 메소드는 액티비티를 생성하기 위해서 안드로이드 시스템에 의해 자동으로 호출되는 메소드 입니다.
이런식으로 액티비티의 상태에 따른 메소드는 크게 생성, 실행, 종료 단계의 메소드로 구분되고
이러한 메소드를 '생명주기 메소드' 라고 부릅니다.
액티비티 생명주기
액티비티 생명주기는 액티비티 생성부터 종료까지를 정의하며 각각의 상태에 맞는 메소드가 호출됩니다.
따라서 상태에 맞는 메소드에 수행할 동작을 정의하기만 하면 됩니다.
액티비티가 실행되면 onCreate, onStart, onResume 메소드가 연속으로 호출되면서 액티비티가 화면에 보여집니다.
사용자가 홈 버튼을 누르거나 다른 액티비티를 실행하면 onPause 메소드가 호출됩니다.
메소드 | 설명 | 다음 메소드 |
onCreate() | 액티비티가 생성될 때 호출되며 사용자 인터페이스 초기화에 사용 | onStart() |
onRestart() | 액티비티가 멈췄다가 다시 시작되기 전에 호출됨 | onStart() |
onStart() | 액티비티가 사용자에게 보여지기 전에 호출됨 | onResume() 혹은 onStop() |
onResume() | 액티비티가 사용자와 상호작용하기 전에 호출됨 | onPause() |
onPause() | 다른 액티비티가 보여질 때 호출됨 | onResume() 혹은 onStop() |
onStop() | 액티비티가 더이상 사용자에게 보여지지 않을 때 호출됨 | onRestart() 혹은 onDestory() |
onDestroy() | 액티비티가 소멸될 때 호출됨 finish() 메소드가 호출되거나 시스템이 메모리 확보를 위해 액티비티를 파기할 때 호출됨 |
없음 |
예를들면 사용자가 앱을 실행한 상태에서 전화를 받으면 해당 액티비티의 onPause 메소드가 호출된 후
전화를 끊으면 다시 액티비티가 보이는데 이 때 onResume 메소드가 호출됩니다.
'Computer Language > Android' 카테고리의 다른 글
[Android] 안드로이드 인텐트 다른 액티비티로 이동 및 데이터를 전달 (0) | 2021.07.10 |
---|---|
[Android] 안드로이드 위젯 (feat 텍스트뷰, 버튼) (0) | 2021.06.29 |
[Android] 안드로이드 로그 추가하는 방법 (0) | 2021.06.20 |
[Android] 안드로이드 레이아웃 XML 위젯 접근 방법 (0) | 2021.06.20 |
[Android] 안드로이드 스튜디오 가상기기 생성방법 (1) | 2021.06.20 |