본문 바로가기
프로그래밍 놀이터/안드로이드, Java

[Android/안드로이드] 암시적 인텐트 ( Implicit Intent ) 에 대해 알아보아요.

by 돼지왕 왕돼지 2012. 2. 19.
반응형


안녕하세요 돼지왕 왕돼지입니다.
오늘은 암시적 인텐트 ( Implicit Intent ) 에 대해 알아보겟습니다.


암시적 인텐트 ( Implicit Intent )가 뭐예요?


Intent 를 암시적 인텐트 ( Implicit Intent ) 와 명시적 인텐트 ( Explicit Intent ) 로 나누곤 합니다. 
암시적 인텐트는 그 Intent 를 받는 대상이 명확하지 않은 경우를 말합니다. 이 때는 "이런 이런 녀석이 받았으면 좋겠어" 라고 대충 명시를 해줍니다. 예를 들어 http://www.google.com 이라는 사이트를 브라우저를 통해 열고 싶습니다. 하지만 어떤 브라우저들이 설치되어 있는지 어플리케이션에서 정확히 알기 어렵고, 브라우저의 경우 누구나 쉽게 사용해야 하는 것인데 정확한 Action Name 이나, PackageName, className 을 쉽게 알 수 없어 명시적 인텐트로는 사용하기가 어렵죠. 이럴 때는 "www.google.com 을 열어줘!" 라는 형태로 인텐트를 날리면, system 에서 알아서 매핑을 해주는 형태입니다.
반면에 명시적 인텐트는 그 Intent를 받는 대상이 명확한 경우를 말합니다. 




예제를 보여줘봐.


Intent intent;
 
//web
intent = new Intent( Intent.ACTION_VIEW, Uri.parse("http://www.google.com") );
startActivity(intent);
  
//dial
intent = new Intent( Intent.ACTION_DIAL, Uri.parse("tel:010-1234-5678") );
startActivity(intent);
  
//picture
intent = new Intent( Intent.ACTION_VIEW );
Uri uri = Uri.fromFile(new File("/sdcard/test.jpg"));
intent.setDataAndType(uri, "image/jpeg");
startActivity(intent);
  
//other
intent = new Intent( Intent.ACTION_MAIN );
// 인텐트 필터에 MAIN 이라고 지정되어 있는 액티비티만..
intent.setComponent(new ComponentName("exam.Input", "exam.Input.Input"));
intent.setClassName("exam.Input", "exam.Input.Input");
startActivity(intent);



로그인 없이 추천 가능합니다. 손가락 꾸욱~

반응형

댓글