반응형
Activity가 실행 전까지 세가지 메소드
onCreate
onStart
onResume
onCreate
-반드시 구현되어야 하는 메소드
-(Button, Layout과 같은 View) 초기화
onStart
-사용자에게 보여줄 준비가 되었을때 호출
-사용자에게 Activity를 보여주기 위해 필요한 리소스 설정
onResume
-실행중
-액티비티가 화면 앞에있고 사용자 포커스를 갖고 있음
-사용자와 상호작용을 처리하기에 좋은 메소드(버튼클릭, Toast메세지)
Acitivity가 종료되기전 메소드
onPause()
-Activity를 떠난다는 첫번째 신호(아직 소멸되지 않음)
-현재변경 사항을 저장할 때 이곳에서 해야한다.
onStop
-A화면에서 B화면으로 넘어갔다면 완전히 가려진 상태(백그라운드)
-뒤로가기를 누르면 B화면에서 A화면으로 다시돌가게됨(아직 소멸되지 않음)
onDestroy
-소멸되기전에 호출된다.
-액티비티가 받는 마지막 호출
package grocery.gohool.lifecycle;
import android.content.Intent;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.Toast;
import androidx.appcompat.app.AppCompatActivity;
public class MainActivity extends AppCompatActivity {
Button button;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Log.i("onCreate","onCreate");
Toast.makeText(this, "onCreate", Toast.LENGTH_LONG).show();
//초기화 여기서.
button = (Button) findViewById(R.id.button);
}
@Override
protected void onResume() {
super.onResume();
Log.i("onResume","onResume");
Toast.makeText(this, "onResume", Toast.LENGTH_LONG).show();
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//메인액티비티 -> 세컨드
Intent intent = new Intent(MainActivity.this, Second.class);
startActivity(intent);
}
});
}
@Override
protected void onStart() {
super.onStart();
Log.i("onStart","onStart");
Toast.makeText(this, "onStart", Toast.LENGTH_LONG).show();
}
@Override
protected void onStop() {
super.onStop();
Log.i("onStop","onStop");
Toast.makeText(this, "onStop", Toast.LENGTH_LONG).show();
}
@Override
protected void onDestroy() {
super.onDestroy();
Log.i("onDestroy","onDestroy");
Toast.makeText(this, "onDestroy", Toast.LENGTH_LONG).show();
}
@Override
protected void onPause() {
super.onPause();
Log.i("onPause","onPause");
Toast.makeText(this, "onPause", Toast.LENGTH_LONG).show();
}
@Override
protected void onRestart() {
super.onRestart();
Log.i("onRestart","onRestart");
Toast.makeText(this, "onRestart", Toast.LENGTH_LONG).show();
}
}
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.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="Button"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout>
생명주기를 이해하는 방법은 실행시켜보는 방법이 가장 빠른거같다.
반응형
'개발언어 > JAVA' 카테고리의 다른 글
안드로이드 슬라이드메뉴 + fragment (0) | 2020.12.26 |
---|---|
안드로이드 Fragment (0) | 2020.12.25 |
안드로이드 슬라이드 메뉴 만들기 (0) | 2020.12.24 |
안드로이드 다중 체크박스 결과 값 보내기 (0) | 2020.12.24 |
안드로이드 앱(todolist 만들기) (0) | 2020.12.19 |