[안드로이드]Activity LifeCycle 작성/XML에서 작성한 VIEW를 Activity로 가져오기

🟧Activity LifeCycle 작성

  • MainActivity파일에 Activity LifeCycle작성
  • onCreate는 시스템이 액티비티를 생성할 때 실행되는 것으로 필수적으로 구현해야해서 디폴트로 작성돼있음
    • Activity의 전체 수명주기 동안 한번만 발생해야하는 기본 어플리케이션 실행로직 구현
  • Activity의화면을 그리는 것은=setContentView 액티비티 실행중 한번만 그려놓으면 되니까 onCreate에서 구현(액티비티가 사라졌다 올라올때도 그려놨던것만 쓰면 되니까.)
  • oncreate제외 나머지 라이프사이클은 액티비티 라이프사이클에서 필수가 아니라서 개발자가 오버라이딩해야함
package com.example.kotlin_study

import android.os.Bundle
import androidx.appcompat.app.AppCompatActivity
 기본으로 상단 2개의 임포트가 디폴트임
 import android.util.Log
 
class MainActivity : AppCompatActivity() { 
//MainActivity는 AppCompatActivity라는 클래스를 상속받았음

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.all_test_answer) //화면을 그려주는 역할
    }
//onCreate메서드는 매개변수로 Bundle타입의 savedInstanceState변수를 받음
//super.onCreate(savedInstanceState)는 오버라이딩한 onCreate가 호출될때
//AppCompatActivity의 onCreate도 호출되도록함
    override fun onStart() {
        super.onStart()
        Log.d("lifecycle","onStart")
        //final 클래스인 Log에서 static메서드인 d호출, 코틀린은 자동 import기능 제공해서 Log클래스자동으로 임포트됨
    }

    override fun onResume() {
        super.onResume()
        Log.d("lifecycle","onResume")
    }

    override fun onPause() {
        super.onPause()
        Log.d("lifecycle","onPause")
    }

    override fun onStop() {
        super.onStop()
        Log.d("lifecycle","onStop")
    }

    override fun onDestroy() {
        super.onDestroy()
        Log.d("lifecycle","onDestroy")
    }
}

🟩Log.d사용해서 LifeCycle 확인

package android.util;
public final class Log
public static int d(@Nullable String tag, @NonNull String msg){..}

  • Log.d(검색 용도=꼬리표기능,개별 식별용도)


activity running단계이기때문에 onCreate,onStart,onResume만 로그에 찍힘(애뮬레이터 오류로 onCreate원래 찍혀야되는데 상단 이미지에는 없음)

화면이 완전히 사라지면 onPause,onStop호출됨

앱을 다시 화면에 띄우면 onStart,onResume다시 호출

Activity가 이정도만 가려져도 onPause,onStop이 모두 호출됨. 이론상으로는 onPause는 Activity가 일부만 가려졌을때, onStop은 모두 가려졌을때 호출된다고 되어있지만 이론과 완벽히 들어맞지는 않음
그래서, 개발을 할땐 onPause,onStop둘중 한곳에 상태정의 코드 작성.

🟪새로운 Activity 만들기

  • xml에 적어놓은 뷰들을 클릭했을때 우리가 원하는 동작하도록 코드 작성하려면 xml에 적어놓은 뷰를 Activity로 가져와서 가져온 view를 이용해서 사용자 인풋(이벤트)이 발생했을떄 동작될 코드들을 작성하게됨
  • 이때, 익명함수를 사용하게 됨 익명인 이유는 딱 한번만 호출되니까 이름을 지어줄 필요가 없어서.
  • 새로운 Activity를 만들기 위해서는 해당 패키지 우클릭해서 Activity클릭 후 원하는 Activity를 선택함 이때선택하는 Activity는 프로젝트를 처음 만들때 선택하게되는 초기 Activity 종류와 동일
  • 새로운 Activity를 Android라는 하위 패키지 밑에 생성함 해당 Activity이름은 class 이름이 됨
  • MainActivity의 초기 코드와 동일한 Activity파일 생성됨
  • 새로운 Activity를 만들면 애플리케이션의 시각적 사용자 인터페이스 요소를 구현하는 Activity를를 선언하는 manifest파일에 우리가 생성한 Activity가 자동으로 선언됨
  • 파란부분:MainActivity(디폴트로 설정된 Activity) 빨간부분:개발자가 추가한 Activity 자동 선언되어있음
  • Activity를 생성하면 Kotlin파일(동적이며, 화면의 실질적인 기능 구성) 과 해당 Activity에 그려질 xml(UI적 화면구성)파일이 1개의 세트로 생성됨

좋은 웹페이지 즐겨찾기