728x90
반응형
1. 액티비티 생명주기
1) 생성부터 소멸까지의 주기
2) 앱은 화면이 작아 동시에 여러 개의 액티비티(화면)가 나올 수 없음
- 앞에 나오는 화면 하나만 활성화된 상태이고, 나머지는 모두 비활성화된 상태로 남게됨
3) 실행상태(resumed, running)
- 액티비티가 전경에 위치하고 있으며, 사용자의 포커스를 가지고 있음
일시멈춤상태(paused)
- 다른 액티비티가 전경에 있으며, 포커스를 가지고 있으며 현재 액티비티의 일부가 아직도 화면에 보이고 있는 상태
정지상태(stoped)
- 액티비티는 배경에 위치함
4) 콜백 메서드
- onCreate()
- 액티비티가 생성되면서 호출
- 중요한 구성요소를 초기화
- onPause()
- 사용자가 액티비티를 떠나고 있을 때, 이 메소드가 호출
- 그 동안 이루어졌으면, 변경사항을 저장
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout 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="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical"
tools:context=".MainActivity">
<Button
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/btnDial"
android:text="전화걸기"/>
<Button
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/btnFinish"
android:text="끝내기"/>
</LinearLayout>
package kr.co.activitylifecycle;
import androidx.appcompat.app.AppCompatActivity;
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.Button;
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
getSupportActionBar().setDisplayShowHomeEnabled(true);
getSupportActionBar().setIcon(R.drawable.ic_launcher);
setTitle("액티비티 라이프사이클");
Log.i("액티비티 생명주기", " onCreate()");
Button btnDial = findViewById(R.id.btnDial);
btnDial.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Uri uri = Uri.parse("tel:02-532-6509");
Intent intent = new Intent(Intent.ACTION_DIAL, uri);
startActivity(intent);
}
});
Button btnFinish = findViewById(R.id.btnFinish);
btnFinish.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
finish();
}
});
}
@Override
protected void onDestroy() {
super.onDestroy();
Log.i("액티비티 생명주기", " onDestroy()");
}
@Override
protected void onPause() {
super.onPause();
Log.i("액티비티 생명주기", " onPause()");
}
@Override
protected void onRestart() {
super.onRestart();
Log.i("액티비티 생명주기", " onRestart()");
}
@Override
protected void onResume() {
super.onResume();
Log.i("액티비티 생명주기", " onResume()");
}
@Override
protected void onStart() {
super.onStart();
Log.i("액티비티 생명주기", " onStart()");
}
@Override
protected void onStop() {
super.onStop();
Log.i("액티비티 생명주기", " onStop()");
}
}
[결과출력]
728x90
반응형
'App > Android Java' 카테고리의 다른 글
Android_Java(24) - MovieCustomListView(2) (0) | 2022.02.14 |
---|---|
Android_Java(23) - MovieCustomListView (0) | 2022.02.13 |
Android_Java(21) - ImplicitIntent (0) | 2022.02.11 |
Android_Java(20) - MyIntent(3) (0) | 2022.02.11 |
Android_Java(19) - MyIntent(2) (0) | 2022.02.11 |
댓글