μΆμ²
ChatGPT
Gemini
1. `standard` Launch Mode
1. νΉμ§
1. κΈ°λ³Έ λͺ¨λ
`standard`λ μλλ‘μ΄λμ κΈ°λ³Έ λ°μΉ λͺ¨λμ΄λ€. μλ‘μ΄ μΈν νΈκ° μ‘ν°λΉν°λ₯Ό μμν λλ§λ€ μλ‘μ΄ μΈμ€ν΄μ€κ° μμ±λλ€.
2. μ‘ν°λΉν° μ€ν
λμΌν μ‘ν°λΉν°λ₯Ό μ¬λ¬ λ² νΈμΆνλ©΄, μ‘ν°λΉν°κ° κ°κΈ° λ€λ₯Έ μΈμ€ν΄μ€λ‘ μ€νμ μμ΄κ² λλ€.
2. μ₯μ
1. λ¨μν¨
κ°λ¨νκ³ μ§κ΄μ μ΄λ€. μλ‘μ΄ μμ²λ§λ€ μλ‘μ΄ μΈμ€ν΄μ€κ° μμ±λλ―λ‘, νλ‘κ·Έλλ°μ΄ κ°λ¨νκ³ μμ κ°λ₯ν λμμ νλ€.
2. μν μ μ§
κ° μΈμ€ν΄μ€κ° λ 립μ μ΄λ―λ‘, μ‘ν°λΉν° κ°μ μνλ λ°μ΄ν°κ° μμΌ μΌλ €κ° μλ€.
3. λ¨μ
1. λ©λͺ¨λ¦¬ μ¬μ©λ μ¦κ°
μ¬λ¬ μΈμ€ν΄μ€κ° λμμ μ‘΄μ¬ν μ μμ΄ λ©λͺ¨λ¦¬ μ¬μ©λμ΄ μ¦κ°ν μ μλ€.
2. 리μμ€ λλΉ
κ°μ μ‘ν°λΉν°λ₯Ό κ³μν΄μ μμ±ν νμκ° μλ κ²½μ°μλ λΆνμν μΈμ€ν΄μ€λ₯Ό μμ±νκ² λλ€.
4. μ¬μ© μμ
1. λ°μ΄ν°κ° λ 립μ μΈ κ²½μ°
μλ₯Ό λ€μ΄, μ¬μ©μκ° μ¬λ¬ κ°μ λ¬Έμλ₯Ό μ΄ μ μλ λ©λͺ¨ μ±μ΄λ, μ¬λ¬ κ°μ μ°½μ μ΄ μ μλ λΈλΌμ°μ μ± λ±μμ μ μ©νλ€.
μμ μ½λ
<activity android:name=".StandardActivity"
android:launchMode="standard">
</activity>
2. `singleTop` Launch Mode
1. νΉμ§
1. μ΅μλ¨μμ μ¬μ¬μ©
μ‘ν°λΉν°κ° μ€νμ μ΅μλ¨μ μμ λ, λμΌν μ‘ν°λΉν°κ° λ€μ μμλλ©΄ μλ‘μ΄ μΈμ€ν΄μ€λ₯Ό μμ±νμ§ μκ³ κΈ°μ‘΄ μΈμ€ν΄μ€λ₯Ό μ¬μ¬μ©νλ€.
2. onNewIntent() νΈμΆ
μ΅μλ¨μ μμ κ²½μ° μλ‘μ΄ μΈν νΈλ‘ `onNewIntent()`κ° νΈμΆλμ΄ μ λ°μ΄νΈλλ€.
2. μ₯μ
1. λ©λͺ¨λ¦¬ ν¨μ¨μ±
μ€ν μ΅μλ¨μ μλ κ²½μ°μλ μλ‘μ΄ μΈμ€ν΄μ€λ₯Ό μμ±νμ§ μμΌλ―λ‘ λ©λͺ¨λ¦¬λ₯Ό μ μ½ν μ μλ€.
2. ν¨μ¨μ μΈ λ¦¬μμ€ μ¬μ©
μ‘ν°λΉν°κ° μ΅μλ¨μ μμ λλ§ μ¬μ¬μ©λλ―λ‘, νΉμ 쑰건μμλ§ λ©λͺ¨λ¦¬ μ¬μ©λμ μ΅μ νν μ μλ€.
3. λ¨μ
1. μ¬μ©μ νΌλ
μ€νμ μλ λ€λ₯Έ μ‘ν°λΉν°μμ ꡬλ³μ΄ νμνμ¬ κ°λ°μκ° μ λλ‘ κ΄λ¦¬νμ§ μμΌλ©΄ μ¬μ©μ κ²½νμ΄ νΌλμ€λ¬μΈ μ μλ€.
4. μ¬μ© μμ
1. μλ¦Ό ν΄λ¦
μ¬μ©μκ° μλ¦Όμ ν΄λ¦νμ¬ μ‘ν°λΉν°λ₯Ό μμν λ, μ΄λ―Έ ν΄λΉ μ‘ν°λΉν°κ° μ΅μλ¨μ μμΌλ©΄ κ°μ μΈμ€ν΄μ€λ₯Ό μ¬μ¬μ©νλ κ²½μ°μ μ μ©ν©λλ€.
μμ μ½λ
<activity android:name=".SingleTopActivity"
android:launchMode="singleTop">
</activity>
class SingleTopActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_single_top)
}
override fun onNewIntent(intent: Intent?) {
super.onNewIntent(intent)
// μ μΈν
νΈλ‘ λ°μ΄ν° μ
λ°μ΄νΈ
}
}
3. `singleTask` Launch Mode
1. νΉμ§
1. λ¨μΌ μΈμ€ν΄μ€
νμ€ν¬ λ΄μμ λ¨ νλμ μΈμ€ν΄μ€λ§ μ μ§λλ€. λμΌν μ‘ν°λΉν°κ° λ€μ μμλλ©΄, κΈ°μ‘΄ μΈμ€ν΄μ€κ° μ΅μλ¨μΌλ‘ μ΄λνλ€.
2. νμ μ‘ν°λΉν° μ κ±°
κΈ°μ‘΄ μΈμ€ν΄μ€κ° μ΅μλ¨μΌλ‘ μ¬λΌμ€λ©° ν΄λΉ μ‘ν°λΉν° μμ λͺ¨λ μ‘ν°λΉν°λ μ κ±°λλ€.
3. μλ‘μ΄ νμ€ν¬ μμ±
λ€λ₯Έ νμ€ν¬μμ μ΄ μ‘ν°λΉν°λ₯Ό μμνλ©΄ μλ‘μ΄ νμ€ν¬κ° μμ±λλ€.
2. μ₯μ
1. μ€λ³΅ λ°©μ§
λ¨μΌ μΈμ€ν΄μ€λ§ νμ©λμ΄ νΉμ μ‘ν°λΉν°κ° μ€λ³΅λμ§ μκ² λ³΄μ₯νλ€. μ±μ ꡬ쑰λ₯Ό λ¨μνν μ μλ€.
2. νμ€ν¬ κ΄λ¦¬
λΆνμν μ‘ν°λΉν°λ₯Ό μ κ±°ν¨μΌλ‘μ¨ νμ€ν¬μ κ΄λ¦¬λ₯Ό μ©μ΄νκ² νλ€.
3. λ¨μ
1. νμ€ν¬ μ€λ²ν€λ
μλ‘μ΄ νμ€ν¬λ₯Ό μμ±νμ¬ κ΄λ¦¬νκΈ° λλ¬Έμ μΆκ°μ μΈ μμ€ν μ€λ²ν€λκ° λ°μν μ μλ€.
2. μ¬μ©μ κ²½ν νΌλ
λ€λ₯Έ νμ€ν¬λ‘ μ ννλ©΄μ μ¬μ©μ κ²½νμ΄ μκΈ°μΉ μκ² λ°λ μ μλ€.
4. μ¬μ© μμ
1. ν νλ©΄, μ£Όμ κΈ°λ₯
ν νλ©΄μ΄λ λΈλΌμ°μ μ κ°μ΄ μΈμ λ νλμ μΈμ€ν΄μ€λ§ μμ΄μΌ νλ κ²½μ°μ μ ν©νλ€.
μμ μ½λ
<activity android:name=".SingleTaskActivity"
android:launchMode="singleTask">
</activity>
class SingleTaskActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_single_task)
}
override fun onNewIntent(intent: Intent?) {
super.onNewIntent(intent)
// μ μΈν
νΈλ‘ λ°μ΄ν° μ
λ°μ΄νΈ
}
}
4. `singleInstance` Launch Mode
1. νΉμ§
1. λ¨μΌ νμ€ν¬
μ‘ν°λΉν°κ° νμ κ³ μ ν νμ€ν¬μμ μ€νλλ€. λ€λ₯Έ μ‘ν°λΉν°μ ν¨κ» μμ΄μ§ μκ³ λ 립μ μΌλ‘ μ€νλλ€.
2. μ μΌν μ‘ν°λΉν°
μμ€ν μμ ν΄λΉ μ‘ν°λΉν°κ° μ μΌν μΈμ€ν΄μ€λ‘ λ¨μΌλ©°, λ€λ₯Έ νμ€ν¬μμ μνΈμμ©μ μ΅μννλ€.
2. μ₯μ
1. λ 립μ±
νΉμ μ‘ν°λΉν°κ° λ€λ₯Έ νμ€ν¬μ μνΈμμ©νμ§ μκ³ λ 립μ μΌλ‘ μ€νλμ΄μΌ ν λ μ μ©νλ€.
2. κ³ μ ν 컨ν μ€νΈ
μμ€ν 리μμ€λ₯Ό μ μ½νκ³ μ‘ν°λΉν°μ κ³ μ ν μνλ₯Ό μ μ§νλ λ° μ ν©νλ€.
3. λ¨μ
1. μ νλ μνΈμμ©
λ 립μ μ΄κΈ° λλ¬Έμ λ€λ₯Έ μ‘ν°λΉν°μμ μνΈμμ©μ΄ μ νλλ©°, λ΄λΉκ²μ΄μ νλ¦μ΄ 볡μ‘ν΄μ§ μ μλ€.
2. 리μμ€ λΉμ©
μ μΌν νμ€ν¬λ‘ μΈν΄ 리μμ€κ° λλΉλ μ μλ€.
4. μ¬μ© μμ
1. μλ, μ ν
μλμ΄λ μ ν μ±κ³Ό κ°μ κΈ°λ₯μμ μ ν©νλ©°, μ¬μ©μ κ²½νμ λ°©ν΄νμ§ μκ³ λ
립μ μΌλ‘ μλν΄μΌ νλ μλ리μ€μ μ μ©ν©λλ€.
μμ μ½λ
<activity android:name=".SingleInstanceActivity"
android:launchMode="singleInstance">
</activity>
class SingleInstanceActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_single_instance)
}
override fun onNewIntent(intent: Intent?) {
super.onNewIntent(intent)
// μ μΈν
νΈλ‘ λ°μ΄ν° μ
λ°μ΄νΈ
}
}
λ°μΉ λͺ¨λμ λΉκ΅ μμ½
λ°μΉ λͺ¨λ | μ€λͺ | μ₯μ | λ¨μ | μ¬μ© μ¬λ‘ |
standard | κΈ°λ³Έ λ°μΉ λͺ¨λ, μλ‘μ΄ μΈν νΈλ§λ€ μλ‘μ΄ μΈμ€ν΄μ€ μμ± |
λ¨μνκ³ λ 립μ μ΄λ©° μν μ μ§κ° μ©μ΄ | λ©λͺ¨λ¦¬ μ¬μ©λ μ¦κ°, μ€λ³΅ μμ± |
λ 립μ μΈ λ°μ΄ν° μ²λ¦¬ |
singleTop | μ΅μλ¨μ μμΌλ©΄ μΈμ€ν΄μ€ μ¬μ¬μ©, μλ‘μ΄ μΈν νΈλ `onNewIntent()` |
λ©λͺ¨λ¦¬ ν¨μ¨μ±, νμν λλ§ μΈμ€ν΄μ€ μμ± |
μ¬μ©μ κ²½νμ΄ νΌλμ€λ¬μΈ μ μμ | μλ¦Ό ν΄λ¦, λ©μμ§ νμ |
singleTask | μ€νμ μΈμ€ν΄μ€κ° μ‘΄μ¬νλ©΄ μ΅μλ¨μΌλ‘ μ΄λ, νμ μ‘ν°λΉν° μ κ±° |
μ€λ³΅ λ°©μ§, νμ€ν¬ κ΄λ¦¬ μ©μ΄ |
μλ‘μ΄ νμ€ν¬ μμ±μΌλ‘ μ€λ²ν€λ λ°μ κ°λ₯ | ν νλ©΄, λΈλΌμ°μ |
singleInstance | λ
립μ μΈ νμ€ν¬λ‘ μ€ν, κ³ μ ν μΈμ€ν΄μ€λ§ μ μ§ |
λ
립μ μ€ν, κ³ μ μν μ μ§ |
μνΈμμ© μ ν, 리μμ€ λλΉ κ°λ₯ |
μλ, μ ν λ± λ 립μ μΌλ‘ μλν΄μΌ νλ κΈ°λ₯ |
μ ν κΈ°μ€
κ° λ°μΉ λͺ¨λλ νΉμ μλ리μ€μ μ ν©νλλ‘ μ€κ³λμλ€. μ νν λλ λ€μκ³Ό κ°μ μμλ₯Ό κ³ λ €ν΄μΌ νλ€:
1. μ¬μ©μ κ²½ν
μ¬μ©μκ° μ‘ν°λΉν°λ₯Ό μ΄λ»κ² νμνκ³ μνΈμμ©ν μ§μ λ°λΌ λ°μΉ λͺ¨λλ₯Ό μ νν΄μΌ νλ€. μλ₯Ό λ€μ΄, μ¬μ©μκ° μ΄μ μνλ‘ λμκ°μΌ νλ κ²½μ°μλ `standard`λ `singleTop`μ΄ μ ν©ν μ μλ€.
2. 리μμ€ κ΄λ¦¬
λ©λͺ¨λ¦¬μ μμ€ν 리μμ€λ₯Ό μ΅μ ννκΈ° μν΄ νΉμ μν©μμλ `singleTask`λ `singleInstance`λ₯Ό μ¬μ©ν μ μλ€.
3. μ ν리μΌμ΄μ μ λͺ©μ
μ ν리μΌμ΄μ μ μ£Όμ κΈ°λ₯μ λ°λΌ κ°μ₯ μ ν©ν λ°μΉ λͺ¨λλ₯Ό μ νν΄μΌ νλ€. μ£Όμ νλ©΄μ΄λ κ³ μ ν κΈ°λ₯μλ `singleTask`λ `singleInstance`κ° μ μ©ν μ μλ€.
- μ±μ λ©μΈ μ‘ν°λΉν° : singleTask
- λμΌν μ‘ν°λΉν°κ° λ°λ³΅μ μΌλ‘ νΈμΆλλ κ²½μ° : singleTop
- μμ ν λ 립λ νκ²½μμ μ€νν΄μΌ νλ μ‘ν°λΉν° : singleInstance
μ΄λ¬ν μμλ₯Ό κ³ λ €νμ¬ κ° λ°μΉ λͺ¨λμ μ₯λ¨μ μ μ μ΄ν΄νκ³ , μ±μ μ€κ³μ μ¬μ©μ μꡬμ λ§λ μ μ ν λ°μΉ λͺ¨λλ₯Ό μ ννλ κ²μ΄ μ€μνλ€.