본문 바로가기
개발

[android] 인텐트, 인텐트필터, 액티비티, 서비스, 브로드케스트의 기본 개념

by 테크냥이 2020. 4. 28.
인텐트 및 인텐트 필터(Intent, IntentFilter)

Intent는 메시징 객체로, 다른 앱 구성 요소로부터 작업을 요청하는 데 사용할 수 있습니다. 
인텐트로 Activity 사이에서 통신을 하는 데는 여러 가지 방식이 있지만 기본적으로 크게 세 가지로 나눌 수 있습니다.

 

액티비티(Activity) 

Activity는 앱 안의 단일 화면이라고 생각하시면 편합니다. 
Activity의 인스턴스를 시작하려면 Intent를 startActivity()로 전달하면 됩니다. 
Intent는 시작할 액티비티의 특성을 가지고있고 모든 필수 데이터를 담습니다.

다른 Activity를 실행한 후 결과를 수신하려면, startActivityForResult()를 사용합니다. 
startActivityForResult로 호출된 Activity는 결과를 호출한 Activity의 onActivityResult() 콜백에서 Intent 객체로 수신합니다. 

 

서비스(Service)

Service는 사용자 인터페이스 없이(화면으로 보여지지 않고) 백그라운드에서 작업을 수행하는 구성 요소입니다. 
Android 5.0(API 레벨 21)이상 부터는 JobScheduler를 사용해 서비스를 시작할 수 있습니다. 
JobScheduler에 대한 자세한 내용은 안드로이드 개발자 페이지 API-reference documentation을 참조하세요.

Android 5.0(API 레벨 21)이하 버전은 Service 메서드를 사용해서 Service를 시작합니다. 
Service를 시작하여 파일 다운로드와 같은 한번만 실행되는 작업을 수행 하려면 Intent를 startService()에 전달하면 됩니다. 
Intent는 시작할 Service를 설명하고 모든 필수 데이터를 담고 있습니다. (Activity에서의 Intent역할과 같습니다)

Service가 클라이언트-서버 인터페이스로 디자인된 경우 다른 화면등의 요소로 부터 Service에 바인딩하려면 
Intent를 bindService()에 전달합니다.

 

브로드케스트 전달(Broadcast)

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

반응형

댓글