안드로이드 앱 개발 공부/안드로이드 기본(노션 이동)

[Android] Intent : 인텐트

플래시🦥 2023. 3. 3.
반응형

인텐트는 메시징 객체로, 다른 앱 구성 요소부터 작업을 요청하는 데 사용할 수 있다.

인텐트 구성 요소 사이의 통신을 촉진하는 데는 여러가지 방식이 있지만 기본적으로는 크게 세가지로 나눌 수 있다.

 

- 액티비티 시작

액티비티가 완료되었을 때 결과를 수신하려면, startActivityForResult()를 호출한다.

액티비티는 해당 결과를 이 액티비티의 onActivityResult()  콜백에서 별도의 Intent 객체로 수신한다.

activity는 앱 안의 단일 화면을 나타낸다. activity의 새 인스턴스를 시작하려면 Intent를 startActivity()로 전달하면 된다. Intent는 시작할 액티비티를 설명하고 모든 필수 데이터를 담고 있다.

 

- 서비스 시작

Intent는 시작할 서비스를 설명하고 모든 필수 데이터를 담고 있다.

서비스가 클라이언트-서버 인터페이스로 디자인된 경우, 다른 구성 요소로부터 서비스에 바인딩하려면 Intent를 bindService()에 전달하면 된다.

서비스는 사용자 인터페이스 없이 백그라운드에서 작업을 수행하는 구성 요소이다. 서비스를 시작하여 일회성 작업을 수행하도록 하려면 Intent를 startService()에 전달하면 된다.

 

- 브로드캐스트 전달

: 브로드캐스트는 모든 앱이 수신할 수 있는 메시지이다. 시스템은 시스템이 부팅될 때 또는 기기가 충전을 시작할 때 등 시스템 이벤트에 대란 다양한 브로드캐스트를 전달한다. Intent를 sendBroadcast()  또는 sendOrderedBroadcast()에 전달하면 다른 앱에 브로드캐스트를 전달할 수 있다.

명시적, 암시적 인텐트 두 가지 유형이 존재한다.

 

그림 1.  암시적 인텐트가 시스템을 통해 전달되어 다른 액티비티를 시작하는 방법.  [1]   액티비티 A 가 작업 설명이 있는  Intent 를 생성하여 이를  startActivity() 에 전달합니다.  [2]  Android 시스템이 모든 앱에서 해당 인텐트와 일치하는 인텐트 필터를 검색합니다. 일치하는 항목을 찾으면,  [3]  시스템이 해당 액티비티의  onCreate()  메서드를 호출하여 이를  Intent 에 전달하고, 일치하는 액티비티( 액티비티 B )를 시작합니다.https://developer.android.com/guide/components/intents-filters?hl=ko

- 명시적 인텐트 :  명시적 인텐트는 인텐트에 클래스 객체나 컴포넌트 이름을 지정하여 호출할 대상을 확실히 알 수 있는 경우에 사용한다. (주로 애플리케이션 내부에서 사용)

- 암시적 인텐트(안드로이드 시스템이 인텐트를 이용해 요청한 정보를 처리할 수 있는 적절한 컴포넌트를 찾아 사용자에게 그 대상과 처리 결과를 보여준다)

암시적 인텐트는 호출할 대상이 달라질 수 있는 경우에는 암시적 인텐트를 사용한다.

 

728x90
반응형

댓글