🎨 Programming/Android(Kotlin)

[Kotlin] 16. 안드로이드 Activity 기초 / 생명주기 - 1

ryang x2 2020. 12. 3. 17:39
728x90
반응형

# Activity 

- 앱의 한 화면 

- Life Cycle (수명 주기) 

 

● 안드로이드 개발자 센터 사이트

developer.android.com/guide/components/activities/activity-lifecycle?hl=ko

 

활동 수명 주기에 관한 이해  |  Android 개발자  |  Android Developers

활동은 사용자가 전화 걸기, 사진 찍기, 이메일 보내기 또는 지도 보기와 같은 작업을 하기 위해 상호작용할 수 있는 화면을 제공하는 애플리케이션 구성요소입니다. 각 활동에는 사용자 인터페

developer.android.com

- onCreate() : activity가 만들어질 때 단 한번만 호출( activity가 만들때 단 한번만 하고 싶은 작업을 여기에 해줌)

- onStart() : onCreate() 후에 호출, 앱이 정지됐다가 다시 실행 됐을 때 실행되는 메소드 

- onResume() : 다시 앱으로 돌아올 때 무조건 호출(activity가 다시 호출될 때 하고 싶은 작업을 여기에 해줌)

- onPause() : 화면에 일부가 가려 졌을 때 호출 

- onStop() : 화면이 정지되었을 때 호출 (onPause와 구별하기 힘들기 때문에 같이 호출된다고 생각하면된다.)

- onDestroy() : 앱이 종료될 때 호출 (앱이 메모리에서 사라질 때) 

 

 

# Manifest 란 ,

매니페스트 파일은 앱에 전체적인 파일을 감독하는 환경설정과 같은 파일이다. 

 

● Manifest 파일 구성 

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.koreait.day3">

    <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="Day3" ---> 클릭하면 @string/app_name 지정된 아이디값으로 바뀐다
        android:roundIcon="@mipmap/ic_launcher_round"
        android:supportsRtl="true"
        android:theme="@style/Theme.Day3">
        
        <activity android:name=".MainActivity" />
        <intent-filter>
                <action android:name="android.intent.action.MAIN" /> 
                // 현재actity가 첫화면에 뜬다! 다른파일에는 지정이 불가

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </application>

</manifest>

- application :  하나의 프로젝트를 의미

- allowBackup : 앱을 설치한 후 자료를 저장할 때 백업을 시켜놓는 것 

사용이유, 앱을 지웠다가 깔아도 저장된 자료는 살이있게 한다. 

- icon : launch icon 설정 

- label : 앱의 제목 // 변수의 값으로 제목을 쓰고 싶을 때에는 string 파일에서 수정 후 사용 할 수 있다. 

   - @ : resource 를 의미 

- Activity 파일을 추가하면 Manifest에 자동적으로 추가된다. 

 

● 코드에 대한 추가 설명 

 

* Log에 대한 부분은 아래화면 Logcat 에서 확인이 가능하다 

- log.d(debug)
- log.i(info)
- log.w(warn)
- log.e(error)
- log.a(Assert)

* tag로 검색하면 msg 를 찍히는 것을 확인 할 수 있다 ! 

 

class MainActivity : AppCompatActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
        Log.d("life_cycle", "onCreated()")
    }

    override fun onStart() {
        super.onStart()
        Log.d("life_cycle", "onStart()")
    }

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

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

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

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

1. 어플 실행했을 때

 

2. 어플 멈췄을 때 

 

3. 어플 다시 실행 할 때

 

4. 어플 사라지게 할 때

 

 

728x90
반응형