반응형

이 게시물은 다음 링크를 참조하여 학습했습니다.

 

[Android] 안드로이드 - 어플리케이션 4대 구성요소 (Component)

안드로이드 4대 구성요소(Component)는 엑티비티(Activity), 서비스(Service), 콘텐트 제공자(Content Provider), 방송수신자(Brodcaster Receiver)로 이루어져 있습니다. 각각의 구성요소(Component)는 독립된 형..

lktprogrammer.tistory.com

 

안드로이드(Android) 기본 Component와 Intent

안드로이드(Android) 어플리케이션의 주요 구성요소 1. 기본 컴포넌트(Component) 안드로이드 플랫폼은 어플리케이션을 실행시킬 수 있는 네 가지 유형의 Component를 제공한다. <액티비티(Activity), 서비

hyeonstorage.tistory.com

로드맵을 따라 공부하던 중, 인텐트를 공부하면서 안드로이드 4대 구성요소에 대해 알게 되었다.

그래서 오늘은 4대 구성요소들을 정리하면서 인텐트를 같이 정리해보려 한다.

 

1. 안드로이드 4대 구성요소

Android 4 Component

안드로이드 4대 구성요소는 Activity, Service, Broadcast Receiver, Content Provider로 구성된다.

 1) 액티비티(Activity)

  사용자 화면을 담당하는 구성요소.

  액티비티 구현을 위해서는 Activity Class를 상속받는다.

  생명주기(Life Cycle) 관련 메소드들을 재정의하여 원하는 기능을 구현한다.

 2) 서비스(Service)

  백그라운드에서 실행되는 프로세스.

  화면에 보이지 않으며 Service Class를 상속받아 구현한다.

  네트워크를 통해서 데이터를 가져올 수 있다.

 3) 브로드캐스트 리시버(Broadcast Receiver)

  안드로이드 OS로부터 발생하는 이벤트와 정보를 받아 핸들링하는 컴포넌트.

  메시지의 종류로는 시스템 공지, 어플리케이션 공지가 있다.

  - 시스템 공지 : 배터리 부족, 언어 변경 등

  - 어플리케이션 공지 : 파일 다운로드 완료 등

  BroadcastReceiver클래스를 확장하여 구현 가능.

 4) 컨텐트 프로바이더(Content Provider)

  어플리케이션 내의 데이터를 다른 어플리케이션으로 공유할 수 있게 하는 컴포넌트

  SQLite 데이터베이스, 파일 입출력, Web 등을 통해서 데이터 관리.

  자신에게 접근할 수 있도록 자신의 고유주소( 컨텐트 URI )를 정의해야 한다.

  ContentProvider 클래스를 확장하여 구현 가능.

2. 인텐트(Intent)

  Component에서 다른 Component를 호출하기 위해 전달하는 비동기식 메세지

  안드로이드 구성요소들은

  Activity, Service, Broadcast ReceiverIntent를 통해 호출하여 활성화 가능.

  ContentProviderIntent를 사용하지 않고 ContentResolver객체를 통해 호출되어 활성화.

  Intent 클래스는 여러개의 생성자를 갖고 있는데, 생성자를 사용함에 따라 명시적 인텐트, 암시적 인텐트로 구분된다.

 1) 명시적 인텐트(Explicit Intent)

  호출할 Component가 명확할 때, Intent객체에 Component를 정의하여 사용한다.

1
2
Intent intent = new Intent(MainActivity.this, SubActivity.class);
startActivity(intent);
cs

  Intent를 유튜브나 블로그를 통해서 예제를 처음 접했다면, 다음과 같은 형식으로 사용했을 것이다.

  생성자의 매개변수로 현재 Activity의 Context, 새로 시작할 Activity의 Class를 사용한다.

 2) 암시적 인텐트(Implicit Intent)

  암시적 인텐트는 호출할 Component를 직접 지정하지 않고, 처리해야할 작업과 데이터를 전송한다.

  Component들은 manifest파일의 <intent-filter> </intent-filter>를 통해 처리할 수 있는 Intent를 정의한다.

  안드로이드의 핵심 어플리케이션들( 전화걸기, 문자메시지, 이메일 등 )은 암시적 Intent를 통해서 호출되므로 유용하게 사용 된다.

1
2
Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse("http://m.naver.com"));
startActivity(intent);
cs
1
2
Intent intent = new Intent(Intent.ACTION_DIAL, Uri.parse("tel:01012345678"));
startActivity(intent);
cs

  암시적 인텐트는 생성자의 매개변수로 처리해야할 작업, 데이터를 전송한다.

반응형

+ Recent posts