티스토리 뷰

Android

Intent

세이브 2021. 9. 2. 21:52

 

Intent

: 액티비티에서 다른 액티비티를 실행하거나 실행한 액티비티에  데이터를 전달하는 등의 작업을 하기 위해서 사용된다.

뿐만 아니라 Application Component간의 상호작용을 할 때도 intent에 정보를 담아서 보낸다.

=> 메시지 객체

 

 

 

Intent객체의 구성요소

1) ComponentName  : 인텐트를 처리할 컴포넌트의 이름

Ex. Org.tacademy.app/org.tacademy.app.MyActivity1

 

2) Action  : 수행할 액션의 이름을 나타내는 문자열. (브로드 캐스트 인텐트의 경우에는 수행된 액션 )

Ex.  ACTION_VIEW , ACTION_CALL, ACTION_TIMEZONE_CHANGED,…

 

3) Data : 액션이 수행될 데이터의 Uri MIME타입 ( uri와 mime type이 있으면 데이터를 얻어와서 출력할 수 있다.)

Ex. Tel:/010-2940-2884, http://maps.google.com,

 

 

4) Category : 인텐트를 처리할 컴포넌트의 종류를 알려주는 추가 정보

ex. CATEGORY_BROWSABLE, CATEGORY_LAUNCHER, …

 

 

5) Extra and Flag  : 인텐트를 처리할 컴포넌트에게 전달되는 키-밸류(key-value paris)값.  (다양한 플래그들이 있을 수 있다.)

Ex. sendIntent.putExtra(Intent.EXTRA_TEXT, ”This is my text to send”);

 

 

*flag 플래그 : ~ 이렇게 실행되면 좋겠어

*URI(Uniform Resource Identifier): 프로그램에서 접근할 수 있는 자원에 부여한 아이디 . (위치)

*MIME (Multipurpose Intent Mail Extenstions ) Type  : Text가 아닌 데이터나 ASCII가 아닌 문자를 나타내기 위한 방식.

Mime-type은 데이터를 어떻게 play할지 결정하기 위해 사용된다.(일종의 데이터 형식)

Ex. Audio/mp3. , video/avi , application/json

 

 

 

Intent의 종류

1) 명시적 인텐트 Explicit Intent

호출할 Component나 class(클래스 객체) 가 무엇인지 명확하게 알 수 있는 경우에 요청하는 방식으로 주로 한 어플리케이션 내에서

이미 알고 있는 내부 Component를 호출할 때 많이 사용한다.

-  특정 컴포넌트나 클래스를 지정하기 때문에 명시적이라 한다

Context , Class 명시!

 

Intent(Context packageContext, Class<?> .class)
Intent intent = new Intent(MainActivity.this, NewActivity.class)

 클래스 자체를 전달해야 하기 때문에 클래스 이름에 .class를 붙였다.

 

 

 

 

2) 묵시적 Intent

주로 외부에 있는 컴포넌트들을 호출하여 사용하고자 할 때 주로 사용한다.( 액션과 데이터를 지정하긴 했지만 호출할 대상이 달라질 수 있는 경우). Intent filter에 어떤 작업을 할지 명시한다

=> ACTION 사용

 

intent(String action [,Uri uri]
Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(“http://www.google.com”));
New Intent ( intexnt.ACTION_DIAL , Uri.parse(“tel:01029402884”))

// Intent.ACTION_DIAL : 처리해야 할 작업

// Uri.parse(“tel:01029402884”) : 처리해야 할 데이터

 

 

IntentFilter

: Activity, Service , Reciver가 처리할 수 있는 기능을 기술하기 위해 사용하는 class로

action, category, data를 설정할 수 있고, data는 uri와 type을 설정할 수 있다.

 

-인텐트 필터는 독립적으로 실행되는 Component가 자신의 특성을 기술하기 위해 사용하는 class다.

- IntentFilter에는 Application Component가 자신이 처리할 수 있는 Action, Category, Data 를 설정할 수 있도록 되어 있고 ,Application Component의 Priority를 지정할 수 있다.

 

 

 

 

참고: https://sharp57dev.tistory.com/18

'Android' 카테고리의 다른 글

inflation  (0) 2021.09.03
View 클래스 계층  (0) 2021.09.03
Context  (0) 2021.09.02
Task  (0) 2021.09.02
Activity 간의 데이터 교환  (0) 2021.09.02
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG
more
«   2025/03   »
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31
글 보관함