๊ด€๋ฆฌ ๋ฉ”๋‰ด

JiYoung Dev ๐Ÿ–ฅ

[Android] intent (2023.07.14) ๋ณธ๋ฌธ

full stack/์•ˆ๋“œ๋กœ์ด๋“œ

[Android] intent (2023.07.14)

Shinjio 2023. 7. 14. 17:22

Android 4๋Œ€ ์ปดํฌ๋„ŒํŠธ (๊ตฌ์„ฑ์š”์†Œ)

 

1. Activity (xml + kt) 

 - ํŽ˜์ด์ง€๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” ๋‹จ์œ„ 

 - manifest.xml ํŒŒ์ผ์— ๋“ฑ๋ก ํ›„ ์‚ฌ์šฉ 

 

2. Service (kt)

 - ๋ฐฑ๊ทธ๋ผ์šด๋“œ์—์„œ ๋™์ž‘ (App์„ ๊บผ๋„ ์‹คํ–‰)

- ex) ์œ„์ ฏ, ๋„ค๋น„, ์•Œ๋žŒ, ์‹œ๊ณ„, GPS, ์Œ์•… ์–ดํ”Œ 

 

3. Broadcast Receiver (๊ฐ์ฒด) 

 - ํ•ธ๋“œํฐ์—์„œ ์ผ์–ด๋‚˜๋Š” ๋ชจ๋“  ์ผ์„ ๊ฐ์ง€

 - ex) ๋ฌธ์ž ๋„์ฐฉ, ์ „ํ™” ์˜ค๋Š” ๊ฑฐ ๊ฐ์ง€(ํ›„ํ›„), ๋ณผ๋ฅจํ‚ค ๋ˆŒ๋ €๋‹ค, ํ”๋“ค์—ˆ๋‹ค, ์ž ๊ธˆํ™”๋ฉด ํ•ด์ œ...

 

4. Content Provider (๊ฐ์ฒด)

 - ์–ดํ”Œ๋ผ๋ฆฌ ๋ฐ์ดํ„ฐ ์ „๋‹ฌํ•  ๋•Œ ์‚ฌ์šฉ 

 - ex) ์นดํ†ก ↔ ์—ฐ๋ฝ์ฒ˜ ๋™๊ธฐํ™”

 

์ด ๋ชจ๋“  ๊ฑธ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•˜๋Š” ๊ฐ์ฒด๊ฐ€ ๋ฐ”๋กœ Intent




 

subActivity ์ถ”๊ฐ€

 

 

 

๋‹ค์šด๋ฐ›๊ฑฐ๋‚˜ ๋ณต๋ถ™ํ•ด์„œ ํŒŒ์ผ์„ ์ถ”๊ฐ€ํ•  ๊ฒฝ์šฐ manifest.xml ํŒŒ์ผ์— ๋“ฑ๋ก์ด ๋˜์–ด์•ผ ํ•จ!

<intent-filter> ๊ฐ€ ํฌํ•จ๋˜์–ด ์žˆ์œผ๋ฉด App์˜ ๋งจ ์ฒ˜์Œ ํ™”๋ฉด์ด ๋จ

 

application ์ฒซํ™”๋ฉด ๋ฐ”๊พธ๊ธฐ

 

 

 

 

 


 

ํด๋ฆญ์‹œ ๋‹ค๋ฅธ Activity๋กœ ์ด๋™ 

 

 


 

Intent ์‹คํ–‰์‹œ ๋ฉ”๋ชจ๋ฆฌ ์ƒํ™ฉ

1. startActivity ์‚ฌ์šฉ์‹œ

MainActivity ์ฝ”๋“œ

 

SubActivity ์ฝ”๋“œ

 

startActivity(it_moveMain) //์ƒˆ๋กœ์šด Activity๋ฅผ Task์— ์Œ“๋Š” ๋ช…๋ น

startActivity๋ฅผ ์‹คํ–‰ํ•˜๋ฉด task(์ƒˆ๋กœ์šด main)๊ฐ€ ํ•˜๋‚˜์”ฉ ๊ณ„์† ์Œ“์ž„๊ฒŒ ๋จ 

 

 

 

์–ดํ”Œ ํ•˜๋‚˜๋‹น Task๋Š” ํ•˜๋‚˜

์–ดํ”Œ ์—ฌ๋Ÿฌ๊ฐœ ์‹คํ–‰ ๊ฐ€๋Šฅ → Multitasking 

์ฆ‰, ์•ˆ๋“œ๋กœ์ด๋“œ๋Š” Multitasking์„ ์ง€์›ํ•˜๋Š” ์šด์˜์ฒด์ œ

 

 

์•„์ดํฐ vs ์•ˆ๋“œ๋กœ์ด๋“œ

์•„์ดํฐ์€ Task๋ฅผ ์ฃผ๊ธฐ์ ์œผ๋กœ ์ž๋™์œผ๋กœ ๋น„์›Œ์คŒ → ์ „์ฒด ์ข…๋ฃŒ ๊ธฐ๋Šฅ ์—†์Œ

๋Œ€์‹  ์•„์ดํฐ์€ ์ฒ˜์Œ ์–ดํ”Œ์„ ์‹คํ–‰ํ•˜๋ฉด task๋ฅผ ํ™•๋ณด์— ๋“œ๋Š” ์‹œ๊ฐ„๊ณผ ๋ฉ”๋ชจ๋ฆฌ๊ฐ€ ํผ → ์ „์ฒด ์ข…๋ฃŒ ๋น„์ถ”์ฒœ

์•ˆ๋“œ๋กœ์ด๋“œ๋Š” Task๋ฅผ ๊ณ„์† ์œ ์ง€ํ•˜์—ฌ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ์‚ฌ์šฉ → ์ „์ฒด ์ข…๋ฃŒ ๊ธฐ๋Šฅ์ด ์žˆ์Œ

 

2. finish() ์‚ฌ์šฉ์‹œ

 

 

 

sub ์ด๋™์‹œ task ์ œ๊ฑฐ 

 

        btn_moveMain.setOnClickListener {
                finish() //Activity ์‚ญ์ œ
        }

 

3.  startActivityForResult ์‚ฌ์šฉ