๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

๋นˆ ๊ตฌ๋ฉ ์ฑ„์šฐ๊ธฐ

[Android]์•กํ‹ฐ๋น„ํ‹ฐ์˜ ๋Ÿฐ์น˜๋ชจ๋“œ์™€ ํ”Œ๋ž˜๊ทธ์˜ ์ฐจ์ด

์ถœ์ฒ˜

Gemini


์•กํ‹ฐ๋น„ํ‹ฐ ๋Ÿฐ์น˜ ๋ชจ๋“œ์™€ ํ”Œ๋ž˜๊ทธ์˜ ์ฐจ์ด์ 

์•ˆ๋“œ๋กœ์ด๋“œ ์•ฑ์—์„œ ์•กํ‹ฐ๋น„ํ‹ฐ๊ฐ€ ์–ด๋–ป๊ฒŒ ์‹œ์ž‘๋˜๊ณ  ๊ด€๋ฆฌ๋˜๋Š”์ง€๋ฅผ ๊ฒฐ์ •ํ•˜๋Š” ๋ฐ ์žˆ์–ด ๋Ÿฐ์น˜ ๋ชจ๋“œ์™€ ํ”Œ๋ž˜๊ทธ๋Š” ์ค‘์š”ํ•œ ์—ญํ• ์„ ํ•œ๋‹ค. ๋‘˜ ๋‹ค ์•กํ‹ฐ๋น„ํ‹ฐ์˜ ์ƒ๋ช…์ฃผ๊ธฐ์— ์˜ํ–ฅ์„ ๋ฏธ์น˜์ง€๋งŒ, ์ž‘๋™ ๋ฐฉ์‹๊ณผ ์„ค์ • ์œ„์น˜์— ์žˆ์–ด ์ฐจ์ด๊ฐ€ ์žˆ๋‹ค.

๋Ÿฐ์น˜ ๋ชจ๋“œ Launch Mode

1. ์ •์˜

AndroidMenifest.xml ํŒŒ์ผ์—์„œ ๊ฐ ์•กํ‹ฐ๋น„ํ‹ฐ์— ์„ค์ •ํ•˜๋Š” ์†์„ฑ. ์•กํ‹ฐ๋น„ํ‹ฐ๊ฐ€ ์ƒ์„ฑ๋˜๊ณ  ๊ด€๋ฆฌ๋˜๋Š” ๋ฐฉ์‹์„ ๊ฒฐ์ •ํ•œ๋‹ค.

2. ์ข…๋ฅ˜

  • standard
  • singleTop
  • singleTask
  • singleInstance

3. ๋ชฉ์ 

์•กํ‹ฐ๋น„ํ‹ฐ์˜ ์ธ์Šคํ„ด์Šค๊ฐ€ ์ƒ์„ฑ๋˜๋Š” ์‹œ์ ๊ณผ ์œ„์น˜, ๊ทธ๋ฆฌ๊ณ  ํƒœ์Šคํฌ์™€์˜ ๊ด€๊ณ„๋ฅผ ์ •์˜ํ•œ๋‹ค.

4. ์„ค์ • ์œ„์น˜

AndroidManifest.xml ํŒŒ์ผ์˜ <activity> ํƒœ๊ทธ ์•ˆ์— andoridLaunchMode ์†์„ฑ์œผ๋กœ ์„ค์ •ํ•œ๋‹ค.

 

ํ”Œ๋ž˜๊ทธ Flag

1. ์ •์˜

Intent ๊ฐ์ฒด์— ์„ค์ •ํ•˜๋Š” ์ถ”๊ฐ€์ ์ธ ์ •๋ณด๋กœ, ์•กํ‹ฐ๋น„ํ‹ฐ๋ฅผ ์‹œ์ž‘ํ•  ๋•Œ ํŠน์ • ๋™์ž‘์„ ์ง€์ •ํ•œ๋‹ค. 

2. ์ข…๋ฅ˜

  • FLAG_ACITIVTY_NEW_TASK
  • FLAG_ACTIVITY_CLEAR_TOP
  • FLAG_ACTIVITY_SINGLE_TOP
  • ๋“ฑ๋“ฑ

3. ๋ชฉ์ 

๋Ÿฐ์น˜ ๋ชจ๋“œ๋ฅผ ๋ณด์™„ํ•˜๊ฑฐ๋‚˜ ํŠน์ • ์ƒํ™ฉ์—์„œ ์•กํ‹ฐ๋น„ํ‹ฐ์˜ ๋™์ž‘์„ ์กฐ์ ˆํ•œ๋‹ค.

4. ์„ค์ • ์œ„์น˜

Intent ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ•  ๋•Œ setFlags() ๋ฉ”์†Œ๋“œ๋ฅผ ์‚ฌ์šฉํ•ด ์„ค์ •ํ•œ๋‹ค.

 

๋Ÿฐ์น˜ ๋ชจ๋“œ์™€ ํ”Œ๋ž˜์˜ ์ฃผ์š” ์ฐจ์ด์ 

ํŠน์ง• ๋Ÿฐ์น˜๋ชจ๋“œ ํ”Œ๋ž˜๊ทธ
์„ค์ • ์œ„์น˜ AndroidManifest.xml Intent ๊ฐ์ฒด
์˜ํ–ฅ ๋ฒ”์œ„ ํ•ด๋‹น ์•กํ‹ฐ๋น„ํ‹ฐ ์ „์ฒด ํŠน์ • Intent ํ˜ธ์ถœ ์‹œ
๊ธฐ๋Šฅ ์•กํ‹ฐ๋น„ํ‹ฐ์˜ ๊ธฐ๋ณธ์ ์ธ ์ƒ์„ฑ ๋ฐ ๊ด€๋ฆฌ ๋ฐฉ์‹ ์„ค์ • ๋Ÿฐ์น˜ ๋ชจ๋“œ๋ฅผ ๋ณด์™„ํ•˜๊ฑฐ๋‚˜ ํŠน์ • ๋™์ž‘ ์ง€์ •
์˜ˆ์‹œ standard, singleTop FLAG_ACTIVITY_NEW_TASK, FLAG_ACTIVITY_CLEAR_TOP

 

๋‘˜์„ ํ•จ๊ป˜ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ

  • ๋Ÿฐ์น˜ ๋ชจ๋“œ : ์•กํ‹ฐ๋น„ํ‹ฐ์˜ ๊ธฐ๋ณธ์ ์ธ ๋™์ž‘ ๋ฐฉ์‹์„ ์ •์˜ํ•œ๋‹ค.
  • ํ”Œ๋ž˜๊ทธ : ํŠน์ • ์ƒํ™ฉ์—์„œ ๋Ÿฐ์น˜ ๋ชจ๋“œ์˜ ๋™์ž‘์„ ์ˆ˜์ •ํ•˜๊ฑฐ๋‚˜ ์ถ”๊ฐ€์ ์ธ ๊ธฐ๋Šฅ์„ ๋ถ€์—ฌํ•œ๋‹ค.

 

์˜ˆ

๋Ÿฐ์น˜๋ชจ๋“œ๊ฐ€ singleTop์œผ๋กœ ์„ค์ •๋œ ์•กํ‹ฐ๋น„ํ‹ฐ์— FLAG_ACTIVITY_NEW_TASK ํ”Œ๋ž˜๊ทธ๋ฅผ ์ถ”๊ฐ€ํ•˜๋ฉด, ํ•ด๋‹น ์•กํ‹ฐ๋น„ํ‹ฐ๊ฐ€ ์ƒˆ๋กœ์šด ํƒœ์Šคํฌ์—์„œ ์‹œ์ž‘ํ•œ๋‹ค.

 

์–ธ์ œ ์–ด๋–ค ๊ฒƒ์„ ์‚ฌ์šฉํ•ด์•ผ ํ• ๊นŒ?

  • ๋Ÿฐ์น˜๋ชจ๋“œ : ์•ฑ์˜ ์ „์ฒด์ ์ธ ๊ตฌ์กฐ๋ฅผ ์„ค๊ณ„ํ•  ๋•Œ, ๊ฐ ์•กํ‹ฐ๋น„ํ‹ฐ์˜ ์—ญํ• ๊ณผ ๊ด€๊ณ„๋ฅผ ๊ณ ๋ คํ•˜์—ฌ ์„ค์ •ํ•œ๋‹ค.
  • ํ”Œ๋ž˜๊ทธ: ํŠน์ • ํ™”๋ฉด ์ „ํ™˜์ด๋‚˜ ์™ธ๋ถ€ ์•ฑ์—์„œ ํ˜ธ์ถœ๋˜๋Š” ๊ฒฝ์šฐ ๋“ฑ, ์ƒํ™ฉ์— ๋”ฐ๋ผ ์œ ์—ฐํ•˜๊ฒŒ ์‚ฌ์šฉํ•œ๋‹ค.

๊ฒฐ๋ก 

๋Ÿฐ์น˜ ๋ชจ๋“œ์™€ ํ”Œ๋ž˜๊ทธ๋Š” ์„œ๋กœ ๋ณด์™„์ ์ธ ์—ญํ• ์„ ํ•˜๋ฉฐ, ์ ์ ˆํ•˜๊ฒŒ ์กฐํ•ฉํ•˜์—ฌ ์•กํ‹ฐ๋น„ํ‹ฐ์˜ ์ƒ๋ช…์ฃผ๊ธฐ๋ฅผ ํšจ๊ณผ์ ์œผ๋กœ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ๋‹ค.