안드로이드

인텐트(Intent)와 인텐트 필터(Intent filter)

raulyo 2015. 9. 21. 11:35


인텐트(Intent) - 다른 구성요소로부터 작업을 요청하는 비동기적 메세지 

액티비티, 서비스, 브로드캐스트 수신기는 인텐트로부터 활성화 

콘텐츠 제공자는 콘텐츠 리졸버(content resolver)로 요청이 지정되면 활성화된다. (콘텐츠 리졸버는 콘텐츠 제공자와의 모든 직접적인 트랜잭션을 

처리하여 제공자와의 트랜잭션을 수행하는 구성요소가 그런일을 하지 않아도 되게 하고 콘텐츠 리졸버객체에서 메소드를 호출한다.)


인텐트 필터 - 해당 구성요소가 수신하고자 하는 인텐트 유형을 나타낸다. 

- Action (수행할 작업) - ACTION_VIEW, ACTION_SEND, ACTION_MAIN : 시작액티비티 지정

- Data (수행할 URI)

- Category (수행할 액션의 추가적인 정보)

  1)  CATEGORY_LAUNCHER : 작업최초

  2)  CATEGORY_BROWERSABLE: 브라우저

- Type (수행할 인텐트 데이터의 명시적인 타입)

- Extra (추가정보)

- FLAG ( 정의된 플래그, 액티비티 시작할 방법에 대한 지침)

1. 암시적 인텐트 -> 액 선택기 대화상자 (Intent chooser = Intent.createchooser~~)

   - 암시적 인텐트를 수신하려면 CATEGORY_DEFAULT를 반드시 포함해야만 한다. 

2. PendingIntent -> 보류 인텐트

   - 외래 앱에 권한을 허가하여 안에 들어 있는 Intent를 마치 본인 앱에서 실행하게 하는것

   (1) Notification  

   (2) 위젯

      1) 액티비티 시작  : PendingIntent.getActivity

      2) 서비스 시작 : PendingIntent.getService

      3) 브로드 캐스트 리시버 : PendingIntent.getBroadcast

3. 인텐트가 일치하는지 쿼리를 수행하는 URI : queryIntentActivities, queryBroadcastReceiver