Activity 란
Android에서 액티비티는 현재 보이는 화면 및 사용자가 상호작용 하는 단계를 관리하는 안드로이드 4대 구성요소 중 하나입니다.
액티비티는 타 액티비티 혹은 시스템 자체에 의해 시작될 수 있습니다.
TODO) 시스템에 의해 시작하는 액티비티 예제
각 활동은 고유한 레이아웃, 동작 및 기능을 가질 수 있으며 운영 체제에서 관리하여 리소스를 최적화하고 더 나은 사용자 경험을 제공할 수 있습니다.
액티비티는 앱의 매니페스트 파일에서 선언되며 활동 클래스를 확장하는 클래스로 정의됩니다.
TODO) 시스템에 의해 시작하는 액티비티 예제
활동에는 onCreate(), onStart(), onResume(), onPause(), onStop(), onRestart() 및 onDestroy()와 같이 수명 동안 Android 시스템에서 호출하는 여러 수명 주기 메서드가 있을 수 있습니다.
onCreate() 메서드는 활동이 생성될 때 호출되는 첫 번째 메서드이며 일반적으로 사용자 인터페이스를 설정하고 활동에 필요한 모든 변수 또는 데이터를 초기화하는 곳입니다.
onStart() 메서드는 활동이 표시되려고 할 때 호출됩니다.
onResume()은 활동이 전경에 있고 사용자와 상호 작용할 준비가 되었을 때 호출됩니다.
onPause() 메서드는 다른 활동이 시작될 때와 같이 활동이 포커스를 잃을 때 호출됩니다.
onStop() 메서드는 사용자가 다른 앱으로 이동하거나 홈 화면으로 돌아갈 때와 같이 활동이 사용자에게 더 이상 표시되지 않을 때 호출됩니다.
onRestart() 메서드는 Activity가 정지되었다가 다시 시작될 때 호출되고 onDestroy()는 Activity가 소멸될 때 호출됩니다.
활동 수명 주기를 관리하고 다른 활동을 시작하고 상호 작용하는 방법을 이해함으로써 개발자는 풍부한 사용자 경험을 제공하는 복잡하고 매력적인 앱을 만들 수 있습니다.
Activity 생명주기
Android 활동 수명 주기는 활동이 수명 동안 통과할 수 있는 일련의 상태를 나타냅니다. 활동은 사용자 인터페이스 및 사용자와 상호 작용할 수 있는 기능을 제공하는 Android 앱의 기본 구성 요소입니다.
활동 수명 주기의 7단계는 다음과 같습니다.
- onCreate() - 활동이 생성될 때 호출되는 첫 번째 메서드입니다. 여기에서 UI 요소를 설정하고 활동을 초기화합니다.
- onStart() - 이 메서드는 활동이 보여지기 직전에 호출됩니다. 이 시점에서 활동이 표시되지만 아직 초점이 맞지 않습니다.
- onResume() - 이 메서드는 액티비티가 사용자와 상호작용하기 직전에 호출됩니다. 여기에서 애니메이션이나 기타 진행 중인 프로세스를 시작해야 합니다.
- onPause() - 다른 액티비티가 보여질때 호출됩니다. 이 시점에서 활동이 계속 표시될 수 있지만 더 이상 초점이 맞지 않습니다.
- onStop() - 이 메서드는 활동이 사용자에게 더 이상 표시되지 않을 때 호출됩니다. 이 시점에서 활동은 포그라운드에 있지 않으며 중지되거나 소멸될 수 있습니다.
- onRestart() - 이 메서드는 활동이 중지된 후 다시 시작될 때 호출됩니다.
- onDestroy() - 이 메서드는 활동이 소멸될 때 호출됩니다. 활동이 메모리에서 완전히 제거되기 직전에 호출되는 메서드입니다.
우선 안드로이드에서 intent 를 시작하기 위해선 intent 객체에 이동하고 싶은 activity 를 등록하고
두가지 방법으로 해당 intent 를 실행할 수 있는데 이것이 startActivity, startActivityForResult 입니다.
startActivity 는 액티비티를 시작하기만 하는 것이고 startActivityForResult 는 해당 액티비티에서 무언가를 받을 때 쓴다는 차이가 있습니다.
무언가를 받을때는 onActivityResult 를 쓰고 startActivityForResult() 및 onActivityResult()는 쌍으로 쓰입니다.
- startActivityForResult() 메서드는 새 활동을 시작하고 그 결과를 받는 데 사용됩니다. 이 메서드는 Intent 매개변수와 특정 요청을 식별하는 요청 코드를 사용합니다.
Intent intent = new Intent(this, SecondActivity.class);
startActivityForResult(intent, REQUEST_CODE);
- onActivityResult() 메서드는 시작된 활동이 완료되고 결과를 다시 보낼 때 호출됩니다. 이 메서드는 요청 코드, 결과 코드 및 시작된 활동에서 반환된 데이터의 세 가지 매개 변수를 사용합니다.
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == REQUEST_CODE && resultCode == RESULT_OK) {
String result = data.getStringExtra("result_key"); // use the result here
}
}
Intent resultIntent = new Intent();
resultIntent.putExtra("result_key", "result_value");
setResult(Activity.RESULT_OK, resultIntent);
finish();
이러한 메서드를 사용하여 활동을 시작하고 호출 활동을 업데이트하는 데 사용할 수 있는 결과를 반환받을 수 있습니다. 올바른 요청 코드를 사용하여 특정 요청을 식별하고 호출 활동에서 그에 따라 결과를 처리하는 것이 중요합니다. 활동 수명 주기를 이해함으로써 개발자는 리소스를 적절하게 관리하고 앱이 성능 및 사용자 경험에 최적화되도록 할 수 있습니다.
'개발 > Android Studio' 카테고리의 다른 글
[Android Studio] IPC, RPC 차이점 (0) | 2023.03.13 |
---|---|
[Android Studio] parcel, marshalling 이란 (0) | 2023.03.06 |
[Android Studio] Service 란, Service 생명주기 (0) | 2023.03.03 |
[Android Studio] largeheap true 란 memory 관리법 (0) | 2023.02.24 |
[Android studio] 어플리케이션 간 100MB 이상 데이터 옮기는 법 (0) | 2023.02.23 |