신규 블로그를 만들었습니다!
안드로이드 라이프 사이클 (Life Cycle)
안드로이드에서 라이프 사이클은 크게 5가지 상태로 나눠서 나타난다. (새로운 액티비티, 실행, 일시정지, 중지, 소멸)
새로운 액티비티 -> 실행
onCreate() > onStart() > onResume()
위의 순서대로 메소드가 실행
실행 -> 일시정지
onPause()
일시정지 -> 실행
onResume()
일시정지 -> 중지
onStop()
중지 -> 실행
onRestart()
onStart()
onResume()
중지 -> 소멸
onDestory()
위에서 보면 처음 액티비티가 실행될때는 onCreate()가 실행되지만, 재실행을 할때는 onRestart()가 실행되는 것을 알 수 있다.
라이프사이클 확인하기
간단한 프로젝트를 통해 라이프사이클의 순서를 알아볼 수 있다. 오버라이드를 통해 onCreate(), onStart(), onResume(), onPause(), onStop(), onDestory() 메소드를 오버라이딩해서 그안에 토스트 메세지를 띄어 본다. 그리고 앱을 실행하여 확인해보면 어떤 메소드 실행되는지 확인 할 수 있으면서, 어떤 순서대로 실행되는지도 알 수 있다.
코드
MainActivity.java
package com.tistory.hongku.mylifecycle;
import android.app.Activity;
import android.content.SharedPreferences;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.Toast;
public class MainActivity extends AppCompatActivity {
Button button;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Toast.makeText(this, "onCreate 호출", Toast.LENGTH_SHORT).show();
button = (Button) findViewById(R.id.button);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
finish();
}
});
}
@Override
protected void onStart() {
super.onStart();
Toast.makeText(this, "onStart() 호출", Toast.LENGTH_SHORT).show();
}
@Override
protected void onResume() {
super.onResume();
Toast.makeText(this, "onResume() 호출", Toast.LENGTH_SHORT).show();
}
@Override
protected void onStop() {
super.onStop();
Toast.makeText(this, "onStop() 호출", Toast.LENGTH_SHORT).show();
}
@Override
protected void onPause() {
super.onPause();
Toast.makeText(this, "onPause() 호출", Toast.LENGTH_SHORT).show();
}
@Override
protected void onDestroy() {
super.onDestroy();
Toast.makeText(this, "onDestroy() 호출", Toast.LENGTH_SHORT).show();
}
}
main_activity.xml
<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity">
<Button
android:id="@+id/button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="화면닫기"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_bias="0.498" />
</android.support.constraint.ConstraintLayout>
관련 글
2018/06/11 - [Android] - Android :: 2018년 3.1.3 버전 안드로이드 스튜디오 설치하기 (맥북)
2018/06/12 - [Android] - Android :: 안드로이드 스튜디오 SDK 설정하기
2018/06/12 - [Android] - Android :: 안드로이드 스튜디오 프로젝트 생성하기
2018/06/12 - [Android] - Android :: 안드로이드 스튜디오 에뮬레이터 만들기(가상 단말, 디바이스 만들기), 프로젝트 실행하기
2018/06/12 - [Android] - Android :: 안드로이드 스튜디오 자동 임포트, 글씨 크기 바꾸기 (auto import)
2018/06/12 - [Android] - Android :: 안드로이드 버튼을 눌러 토스트 메세지 띄우기
2018/06/12 - [Android] - Android :: 안드로이드 버튼을 눌러 웹 페이지 띄우기
'Mobile > Android' 카테고리의 다른 글
Android :: 안드로이드 SMS 문자 받아오기(SMS Receiver, SMS 권한 받기) 예제코드 (8) | 2018.06.14 |
---|---|
Android :: 안드로이드 버튼을 이용해서 이미지 전환하기 (4) | 2018.06.12 |
Android :: 안드로이드 다른 뷰 화면 띄어주기 (4) | 2018.06.12 |
Android :: 안드로이드 버튼을 눌러 웹 페이지 띄우기 (5) | 2018.06.12 |
Android :: 안드로이드 버튼을 눌러 토스트 메세지 띄우기 (2) | 2018.06.12 |
최근댓글