1. 안드로이드 4대 구성요소
- 하나의 애플리케이션은 독립된 실행단위인 4대 구성 요소로 구성된다.
1. Activity
- 눈에 보이는 화면(UI요소)을 관리하는 실행단위
- 여러개의 화면이 떠있는 App의 경우 여러개의 Activity가 있는 것이다.
2. Service
- 백그라운드에서 실행되는 실행단위
3. BroadCastReceiver
- OS가 전달하는 메세지(Ex. 배터리 닳음, 메세지 도착 등)를 전달 받아 실행되는 실행단위
4. ContentsProvider
- 저장된 데이터를 제공하기위한 실행단위
2. AndroidManifest.xml
- 안드로이드 4대 구성요소는 AndroidManifest.xml에 전부 기록되어야 한다.
- AndroidManifest.xml은 개발자가 안드로이드OS에게 알려주고싶은것들을 기록하는 곳이다.
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.hyunndy_01">
<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/AppTheme">
<activity android:name=".MainActivity">
// 액티비티를 대표하는 이름을 설정할 때 쓰는 필터.
// 안드로이드OS는 APP을 실행시키고 android.intent.action.MAIN이름이 붙은 ACTIVITY를 실행시킨다.
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:name=".SecondActivity"></activity>
</application>
</manifest>
3. Intent
- 안드로이드의 4대 구성 요소를 실행하기 위해서는 Intent라는 객체가 필요하다.
- 안드로이드의 4대 구성 요소를 실행하기 위해서는 개발자가 직접 실행하는 것이 아니라 OS에게 실행을 요청하게 된다,
- 실행 요청을 전달 받은 OS는 해당 실행 요소를 실행하게 되는데, 이 때 실행 요청을 위한 정보를 담는 객체가 Intent이다.
- 따라서 Intent를 이용해서 원하는 안드로이드 4대 구성요소를 실행시킬 수 있다.
4. Activity 실행 및 종료
1. StartActivity(Intent)
- 지정된 Intent에 담긴 정보를 토대로 Activity를 실행한다.
2. finish()
- 현재 실행되어 있는 Activity를 종료한다.
5. Back Stack
- Activity에서 다른 Activity를 실행하면 이전 Activity는 Back Stack에 담겨 정지 상태가 되고 새로 실행된 Activity가 활동하게 된다.
- 새로 실행된 Activity가 제거 되면 Back Stack에 있던 Activity가 다시 활동하게 된다.
6. Activity 생성
- app -> New -> Activity 생성
7. 예제
main activity
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
// 1. 버튼을 눌러서 두번째 액티비티를 실행시킨다.
button2.setOnClickListener { view ->
// 2. 인텐트 객체 생성
var intent = Intent(this, SecondActivity::class.java)
// 3. 이 Intent를 실행시켜줘! 안드로이드os야!
startActivity(intent)
}
}
second activity
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_second)
// 4.
// 버튼을 누르면 현재 실행중인 Activity를 종료 시킨다.
// 만일 Back Stack에 이전 Activity가 남아있으면 지금건 종료되고 이전것이 실행된다.
// 따라서 main -> second -> finsh순으로 왔으니 이 버튼을 누르면 Back stack에 남아있는 main으로 갈 것이다.
// 하지만 main에서 버튼을 하나 추가해서 finish를 하면 Back Stack에 아무것도 없기 때문에 app이 바로 종료될것이다.
// 하지만 main에서 버튼을 하나 추가해서 finish를 하면 Back Stack에 아무것도 없기 때문에 app이 바로 종료될것이다.
button.setOnClickListener { view ->
finish()
}
}
'Deperecated > Android_강의' 카테고리의 다른 글
안드로이드 - 데이터 전달하기 (0) | 2020.02.18 |
---|---|
안드로이드 - OnResultActivity (0) | 2020.02.18 |
안드로이드 - RunOnUiThread (0) | 2020.02.18 |
안드로이드 - AsyncTask (0) | 2020.02.17 |
안드로이드 - Handler를 통한 화면 처리 (0) | 2020.02.17 |