Activity
: 앱의 한 화면의 java 코드를 입력하는 곳이다.
Activity가 실행되는데 활동 수명 주기(Life Cycle)라는 동작순서가 존재한다.
Life Cycle, 활동 수명 주기
활동 수명 주기에 관한 이해 | Android 개발자 | Android Developers
활동은 사용자가 전화 걸기, 사진 찍기, 이메일 보내기 또는 지도 보기와 같은 작업을 하기 위해 상호작용할 수 있는 화면을 제공하는 애플리케이션 구성요소입니다. 각 활동에는 사용자 인터페
developer.android.com
1. onCreate()
: 활동 생성, 액티비티가 생성된다.
2. onStart()
: 활동 시작, 사용자에게 표시되고, 앱고 사용자 간의 상호작용을 준비한다.
3. onResume()
: 활동 재개, 앱과 사용자 간의 상호 작용이 일어난다.
4. onPause()
: 활동 중단, 활동이 완전히 소멸되는 것이 아닌 포그라운드에 있지 않을 때 콜백된다.
-> onResume() 로 돌아갈 수 있다.
5. onStop()
: 활동 중지, 활동이 더이상 사용자에게 보여지지 않는 상태이다.
-> onStart() 로 돌아갈 수 있다.
6. onDestroy()
: 활동이 소멸되기 전에 호출되는 메서드로,
사용자가 활동을 닫거나, finish() 가 호출되거나, 기기 회전 및 멀티 윈도우 모드에 호출된다.
public class MainActivity extends AppCompatActivity {
private String TAG1 = "LifeCycle";
@Override
// 메모리에 올림, 활동 생성
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Log.d(TAG1, "onCreate -- 활동 생성");
}
@Override
// 활동이 시작됨 상태에 들어가면 호출됨, 사용자에게 표시됨, 상호작용 준비
protected void onStart() {
super.onStart();
Log.d(TAG1, "onStart -- 활동 시작, 사용자에게 표시됨");
}
@Override
// 활동이 재개됨 상태에 들아가면 호출됨, 앱이 사용자와 상호작용
protected void onResume() {
super.onResume();
Log.d(TAG1, "onResume -- 활동 재개, 앱&사용자 상호작용");
}
@Override
// 사용자가 활동을 떠나는 첫번째 신호 (소멸 X), 활동이 포그라운드에 있지 않음
protected void onPause() {
super.onPause();
Log.d(TAG1, "onPause -- 활동 중단, 완전히 소멸 X");
}
@Override
// 사용자에게 활동이 더이상 표시되지 않는 상태
protected void onStop() {
super.onStop();
Log.d(TAG1, "onStop -- 활동 중지, 사용자에게 표시되지 않음");
}
@Override
// 활동이 소멸되기 전에 호출됨 (사용자가 활동을 닫거나, finish()가 호출됨 또는 기기 회전, 멀티윈도우 모드)
protected void onDestroy() {
super.onDestroy();
Log.d(TAG1, "onDestroy -- 활동 소멸");
}
}
처음 에뮬레이터를 실행하면
onCreate() -> onStart() -> onResume() 메서드 순서로 실행되고, 화면이 사용자에게 보여진다.
다른 앱으로 전환하기 위한 동작을 실행했을 경우
onPause() -> onStop() 메서드 순서로 실행된다.
다시 앱을 실행했을 경우에는
onStart() -> onResume() 메서드 순서로 실행된다.
앱을 꺼버렸을 경우,
onDestory() 메서드가 실행되고 활동이 소멸된다.
화면 회전이 이뤄졌을 경우,
onPause() -> onStop() -> onDestroy() -> onCreate() -> onStart() -> onResume() 메서드 순서로 실행된다.
즉, 활동이 소멸되고 다시 생성된다.
앱을 개발할 경우에 이 활동 수명 주기를 잘 활용해서 개발을 해야한다.
'Android' 카테고리의 다른 글
[안드로이드/JAVA] Intent(인텐트) 값 전달하기 (0) | 2022.02.20 |
---|---|
[안드로이드/JAVA] Intent 인텐트 (Activity 전환 LifeCycle 생명주기) (0) | 2022.02.20 |
[안드로이드/View Widget] GuideLine 가이드 라인 (0) | 2022.02.18 |
[안드로이드/Layout] Constraint Layout 제약 레이아웃 - chain 걸기 (0) | 2022.02.16 |
[안드로이드/View Widget] ImageView 이미지뷰 (0) | 2022.02.15 |