728x90
[Kotlin] 액티비티 생명주기

< 액티비티 컴포넌트 >
프래그먼트가 액티비티처럼 동작하지만, 액티비티는 아니다.
AndroidManifest.xml를 살펴보고 여러 개의 액티비티를 사용해 보자.
인텐트 : 컴포넌트를 실행하려고 시스템에 전달하는 메시지, 어떤 액티비티를 실행할 건지 결정함
안드로이드의 컴포넌트 클래스라면 개발자가 코드에서 직접 생성해서 실행할 수 없습니다.
시스템에서 인텐트의 정보를 분석해서 그에 맞는 컴포넌트를 실행해 줍니다.
외부 앱의 컴포넌트와 연동할 때도 마찬가지입니다.
< 인텐트 이해하기 >
startActivity() 함수가 인텐트를 시스템에 전달
Intent 생성자의 매개변수는 클래스 타입 래퍼런스 정보를 가진다.
액티비티를 추가하면 manifest에 액티비티가 자동으로 등록된다.

- MainActivity와 DetailActivity 등록
<activity
android:name=".DetailActivity"
android:exported="true"/>
<activity
android:name=".MainActivity"
android:exported="true">
<intent-filter>
<action android:name="android.intent.action.MAIN"/>
<category android:name="android.intent.category.LAUNCHER"/>
</intent-filter>
</activity>
- 인텐트를 시스템에 전달
val intent: Intent = Intent(this, DetailActivity::class.java)
startActivity(intent)
< 액티비티 추가하기 >
모듈에 new/Activity/Empty Views Activity 추가하기

액티비티를 추가하면 AndroidManifest에도 액티비티가 자동으로 추가된다.
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android">
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/Theme.EventApplication">
<activity
android:name=".AddActivity"
android:exported="false" />
<activity
android:name=".MainActivity"
android:exported="true">
<!-- 인텐트 필터가 activity 실행 순서를 알려줌 -->
<!-- 이 액티비티가 처음으로 실행된다는 것을 알려주는 코드이다 -->
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
728x90
'Front-End > Kotlin' 카테고리의 다른 글
[Kotlin] Material 라이브러리, 플로팅 버튼, Tab 레이아웃, 뷰페이저 (2) | 2024.04.26 |
---|---|
[Kotlin] Viewpager2, Recycler View, Layout Manager (1) | 2024.04.25 |
[Kotlin] Action View 돋보기, 드로어, 토글, Fragment (0) | 2024.04.24 |
[Kotlin] 제트팩 라이브러리, Action Bar 메뉴 (1) | 2024.04.23 |
[Kotlin] Dialog (1) | 2024.04.22 |