상세 컨텐츠

본문 제목

[Android] 인텐트와 인텐트 필터 살펴보기

Android 개발

by mobile 2011. 7. 26. 00:35

본문

반응형
- 인텐트
: 인텐트(Intent)는 컴포넌트 액션, 데이터 등을 전달하는 메시지 객체이다. 인텐트 객체의 구성 요소는 다음과 같다.

Action : 수행할 액션 이름(ACTION_DIAL)
Data : 수행할 데이터의 URI(tel:)
Category : 수행할 액션에 대한 추가적인 정보
Type : 
수행할 인텐트 데이터의 명시적인 타입(MIME 타입)(video/mpeg)
Component name : 대상 컴포넌트의 완전한 클래스 이름
Extras : 인텐트를 다루는 컴포넌트에 추가적으로 전달한 한 쌍의 키/값 

 
이 구성 요소를 활용하면 다른 애플리케이션의 액티비티를 실행하거나 데이터를 전달해줄 수 있다. 이 중에서 가장 중요한 요소는 Action이다. 주요 액션을 정리하면 다음과 같다.
[Intent의 주요  Action 정리]
 Action 설명
ACTION_VIEW 데이터의 URL로 가장 적절한 액티비티를 호출하는 액션
content://contacts/people/1 
ACTION_DIAL  전화 다이얼 액티비티를 호출하는 액션
content://contacts/people/1
tel:0101235678 
ACTION_CALL 전화 액티비티를 호출하는 액션
tel:0101235678 
ACTION_WEB_SEARCH 웹 검색 액티비티를 호출하는 액션 
ACTION_SEARCH 검색 액티비티를 호출하는 액션 

[인텐트 전달]

Intent intent = new Intent(this, IntentCallee.class);
intent.putExtra("name", "gildong");
intent.putExtra("age", 30);
startActivity(intent); 

[인텐트 수신]

Intent intent = getIntent();
String name = intent.getStringExtra("name");
int age = intent.getIntExtra("age",20); 

 
- 인텐트 필터
인텐트 필터(IntentFilter)는 특정 인텐트를 받을지 말지를 정의하는 역할을 수행하며, 이를 통해 컴포넌트의 특징이 정해진다. 예를 들어, 인텐트 필터의 <action>에 android.intent.action.MAIN을 선언하고 <category>에 android.intent.category.HOME을 선언하면, 해당 컴포넌트는 홈 애플리케이션이 되어 디바이스가 시작될 때 자동으로 시작될 수 있는 애플리케이션이 된다. 인텐트 필터는 AndroidManifest.xml에 다양하게 정의할 수 있다. 인텐트 필터를 구성하는 요소는 인텐트에 작성할 수 있는 요소들과 동일하다.


반응형

관련글 더보기

댓글 영역