안드로이드 스튜디오

[Android] Activity

냠냠쿠 2025. 6. 17. 21:55
728x90

 

안드로이드 4대 구성요소

- 안드로이드 애플리케이션은 독립적인 다양한 실행단위를 하나로 묶어서 관리하는 개념임

- Activity : 눈에 보이는 화면을 나타내는 실행단위 (10개 화면 -> 10개 액티비티)

- Service : 화면을 가지지 않는 실행단 (백그라운드 프로세싱)

- Broadcast Receiver : 어떤 사건을 대기하고 있다가 발생하게되면 코드 발생 (ex. 결제문자 가계부 자동 반영 등)

- Contetn Provider : A 어플리케이션이 저장한 데이터를 다른 어플리케이션이 제공할 수 있음

- 안드로이드 4대 구성요소는 Manifest에 추가 되어 있어야 함

 

 

Activity

- 보이는 화면을 관리하는 실행 단위

 

Activity 생명주기

 

- onCreate() : Activitiy가 처음 생성 될 때 자동으로 호출 됨, 하나 더 있는데 그건 뒤에서 , 

- onResume() : 액티비티가 실행이 되거나 재실행되거나 할 때 무조건 거쳐감 

- Activity : 사용중인 상태 

- OnPause() : Activity 사용 중 다이얼로그를 띄우거나 전화가오는 등의 화면이 다 가려지는 상태가 되어 멈추거나 일시정지되는 상황이 벌어지면 무조건 호출함 

- onDestory() : 해당 액티비티가 완전히 사라질 때 호출

 

예제
package kr.co.softcampus.activity;

import android.os.Bundle;
import android.util.Log;

import androidx.activity.EdgeToEdge;
import androidx.appcompat.app.AppCompatActivity;
import androidx.core.graphics.Insets;
import androidx.core.view.ViewCompat;
import androidx.core.view.WindowInsetsCompat;

import kr.co.softcampus.activity.databinding.ActivityMainBinding;

public class MainActivity extends AppCompatActivity {


    // 액티비티가 생성 될 때 자동으로 호출, 화면 전환이 발생했을 때 자동으로 호출
    ActivityMainBinding activityMainBinding;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        activityMainBinding = ActivityMainBinding.inflate(getLayoutInflater());
        setContentView(activityMainBinding.getRoot());

        Log.d("test", "onCreate");
    }

    // onCreate 메서드 호출 후 자동으로 호출
    // 액티비티가 정지 상태 -> 활동 상태로 돌아올 때 호출 (쪼그라지거나 다른화면 갔다 왔을 때
    @Override
    protected void onStart() {
        super.onStart();
        Log.d("test","onStart");
    }

    // onStart 메서드 호출 후 자동으로 호출
    // 액티비티가 일시정지 되었다가 다시 돌아옴
    @Override
    protected void onResume() {
        super.onResume();
        Log.d("test","onResume");
    }

    // 액티비티가 정지상태가 되었다가 활동상태로 돌아갈 때 onStart 전에 호출
    @Override
    protected void onRestart() {
        super.onRestart();
        Log.d("test","onRestart");
    }

    // 액티비티가 일시정지가 될 때 호출
    // 화면상에서 완전히 사라지거나 화면 위에 작은 팝업 창이 나타날 때 호출
    @Override
    protected void onPause() {
        super.onPause();
        Log.d("test","onPause");
    }

    //액티비티가 완전히 화면에서 사라질때 호출
    @Override
    protected void onStop() {
        super.onStop();
        Log.d("test","onStop");
    }

    //액티비티의 수행이 완전히 종료되어 메모리 상에서 제거될 때 호출
    @Override
    protected void onDestroy() {
        super.onDestroy();
        Log.d("test","onDestroy");
    }
}

 

728x90