Intent란 무엇인가?

Intent는 안드로이드 앱 내부 혹은 외부 컴포넌트간의 호출및 정보 전달을 하는 역할을 합니다.

앱 구성요소(컴포넌트)
* Activity
* Service
* BroadCast Receiver
* Content Provider

앱의 구성요소는 위의 4가지 이며 해당 구성요소간의 호출및 정보를 전달하는데 사용하는 것이 Intent 입니다. 명시적 인텐트와 암시적 인텐트 2가지로 분류 할수 있습니다.

1. 명시적인텐트

- 호출할 대상을 지정 하여 사용

Intent intent = new Intent(context, CallActivity.class);
startActivity(intent);
다른 Acitivity를 시작 하는 소스입니다.
시작할 Acitivity를 지정하여 Intent를 생성 하여 사용합니다.

Intent intent = new Intent(context, MyService.class);
startService(intent);
로컬서비스를 시작하는 소스입니다. (참고로 원격서비스는 바인딩하는 방식으로 구현됩니다.)
Acitivity 시작하는 것과 크게 다르지 않게 Service를 지정하여 Intent를 생성하여
사용 하는 것을 알수있습니다.

2. 암시적인텐트

 - 컴포넌트외의 속성(컴포넌트를 지정하면 명시적 인텐트가 된다)들로 구성하여 속성에 부합하는 컴포넌트를 실행

Intent intent = new Intent(
              "android.intent.action.CALL"
              , Uri.parse(tel));
startActivity(intent);
전화걸기를 요청 하는 소스입니다.
Action값을 android.intent.action.CALL을 지정해서 Acitivity를 실행하면 디바이스내에 해당 Action값 속성을 가지고 있는 Activity를 선택할수 있는 창이 노출 됩니다.



위에 보이는 소스는 간단하게 활용한 방법이고
자세히 들어간다면 Intent에 putExtra를 활용하여 값을 넣어 보내는 작업도 할수 있습니다.





댓글

주간 인기글

[정보] 인스타그램은 당신의 소리를 '듣고' 있을 수도 있습니다

[Angular] 모델, 값이 바뀌었는데 화면 template 이 업데이트 되지 않을 때 조치 팁

[AWS] Lambda + API GateWay를 이용해 간단한 RESTful API 만들기 #1

[AWS] Lambda + API GateWay를 이용해 간단한 RESTful API 만들기 #2

안드로이드에서 당겨서 새로고침(SwipeRefreshLayout) 쉽게 구현하기