Android 의도 와 의도 필터 (1)

하나의 응용 프로그램의 세 가지 핵심 구성 요소 인 활동, 서비스 와 방송 수신 기 는 메시지 즉 의도 (Intents) 를 통 해 활성화 된다.Intent 메시지 전송 은 같은 응용 프로그램 이나 다른 응용 프로그램 에서 구성 요소 가 실 행 될 때 늦게 연결 되 는 메커니즘 입 니 다.의도 자체, 의도 대상 은 실 행 된 추상 적 인 묘 사 를 포함 하 는 수 동적 인 데이터 구조 - 또는 방송 에 있어 이미 발생 하고 밝 혀 진 일 에 대한 묘사 이다.각 구성 요소 에 의 도 를 전달 하기 위해 서로 다른 메커니즘 이 존재 합 니 다.
       하나의 의도 대상 은 Context. startActivity () 나 Activity. startActivity ForResult () 에 전달 하여 활동 을 시작 하거나 존재 하 는 활동 을 새로운 일 을 하 게 하 는 것 이다. 
       하나의 의도 대상 은 Context. startService () 에 전달 하여 서 비 스 를 시작 하거나 실행 중인 서비스 에 새로운 명령 을 전달 하 는 것 이다.유사 한 의 도 는 Context. bindService () 에 전달 되 어 호출 구성 요소 와 대상 서비스 사이 에 연결 을 만 들 수 있 습 니 다.옵션 으로 이 서 비 스 를 시작 할 수 있 습 니 다. 아직 실행 되 지 않 았 다 면. 
        임의의 방송 방법 (예 를 들 어 Context. sendBroadcast (), Context. sendOrdered Broadcast () 또는 Context. sendSticky Broadcast () 의 의도 대상 은 모든 관심 있 는 방송 수신 자 에 게 전달 된다. 많은 방송 은 시스템 코드 에서 발생 한다.  
모든 예 에서 안 드 로 이 드 시스템 은 적절 한 활동, 서비스, 또는 라디오 수신 자 를 찾 아 이 의 도 를 응답 하고 필요 할 때 예화 합 니 다. 이 메시지 전송 시스템 은 중첩 되 지 않 았 습 니 다. 방송 의 도 는 방송 수신 자 에 게 만 전달 되 고 활동 이나 사람 에 게 서 비 스 를 제공 하지 않 습 니 다. 하 나 는 startActivity () 에 전 송 됩 니 다.하나의 활동 에 만 전달 되 고 서비스 나 방송 수신 자 에 게 는 영원히 전달 되 지 않 겠 다 는 의도 다.
       이 문 서 는 의도 적 인 대상 에 대한 설명 으로 시작 하여 구성 요소 에 대한 안 드 로 이 드 맵 의 도 를 설명 합 니 다. 어떤 구성 요 소 를 해결 하 는 지 의도 적 인 메 시 지 를 받 아야 합 니 다. 대상 구성 요 소 를 명시 적 으로 명명 하지 않 은 의도 에 대해 서 는 잠재 적 인 목표 와 연 결 된 의도 필 터 를 대조 하여 이 의도 대상 을 테스트 하 는 것 을 포함 합 니 다.
       
의도 대상 Intent Objects
       의도 적 인 Intent 대상 은 많은 정보 입 니 다. 이 의 도 를 받 은 구성 요소 가 관심 이 있 는 정보 (예 를 들 어 취 할 동작 과 작업 할 데이터) 와 안 드 로 이 드 시스템 이 관심 이 있 는 정보 (예 를 들 어 이 의 도 를 처리 해 야 할 구성 요소 클래스 와 대상 활동 을 어떻게 시작 하 는 지 명령) 를 포함 합 니 다.
구성 요소 이름 Component name
       이 의도 한 구성 요소 이름 을 처리 해 야 합 니 다. 이 필드 는 ComponentName 대상 - 하나의 구성 요소 입 니 다. 대상 구성 요소 의 완전 합 격 된 클래스 이름과 프로그램 설명 파일 에 설 치 된 구성 요소 가 있 는 가방 의 이름 (예 를 들 어 "com. example. project") 입 니 다. 이 구성 요소 이름 의 가방 부분 은 설명 파일 에 설 치 된 가방 이름과 꼭 일치 하지 않 습 니 다.
       구성 요소 이름 은 선택 할 수 있 습 니 다. 설정 되 어 있 으 면 이 의도 대상 은 지정 한 클래스 로 전 달 됩 니 다. 없 으 면 Android 는 다른 의도 대상 의 정 보 를 사용 하여 적당 한 목 표를 찾 습 니 다. - 잠시 후 설명 한 의 도 를 보고 Intent Resolution 을 해석 하 십시오.
       구성 요소 이름 은 다음 과 같은 방법 을 통 해: setComponent (), setClass (), 또는 setClassName () 설정 을 통 해 getComponent () 를 통 해 읽 습 니 다.
  Action
               -  ,         ,           。              ,       :

  
    
Action

ACTION_CALL 
  
        

ACTION_EDIT 
  
          

ACTION_MAIN 
  
         ,             

ACTION_SYNC 
  
               

ACTION_BATTERY_LOW 
     
       

ACTION_HEADSET_PLUG 
     
    

ACTION_SCREEN_ON 
     
    

ACTION_TIMEZONE_CHANGED 
     
    

  Intent 클래스 설명 을 보면 일반적인 동작 에 대한 미리 정 의 된 상수 목록 을 얻 을 수 있 습 니 다. 다른 동작 은 Android API 의 다른 곳 에 정 의 됩 니 다. 동작 문자열 을 사용자 정의 하여 프로그램의 구성 요 소 를 활성화 할 수도 있 습 니 다. 만 든 동작 문자열 은 패키지 이름 을 접두사 로 해 야 합 니 다. 예 를 들 어 "com. example. project. SHOW COLOR".
       동작 은 어느 정도 의도 의 다른 부분 이 어떻게 조직 되 는 지 결정 합 니 다. - 특히 데이터 data 와 추가 필드 extras - 는 하나의 방법 명 처럼 일부 매개 변수 와 반환 값 을 결정 합 니 다. 따라서 가능 한 한 구체 적 인 동작 명 을 사용 하여 의도 의 다른 필드 와 밀접 하 게 연결 하 는 것 이 좋 습 니 다. 다시 말 하면 구성 요소 가 처리 할 수 있 는 의도 대상 에 게 전체적인 협 조 를 정의 하 는 것 입 니 다.고립 된 동작 을 정의 하 는 것 이 아니 라
의도 대상 의 동작 은 setAction () 방법 으로 설정 하고 getAction () 방법 으로 읽 을 수 있 습 니 다.
      
 데이터 데이터
       조작 하고 자 하 는 데이터 통합 자원 식별 자 (URI) 와 그 데이터 의 다 용도 인터넷 메 일 확장 (MIME). 서로 다른 동작 에는 다양한 종류의 데이터 규격 이 수반 된다. 예 를 들 어 동작 이 ACTION EDIT 라면 데이터 필드 에는 문 서 를 편집 할 수 있 는 URI 가 포함 되 어 있 고, 동작 이 ACTION CALL 이면 데이터 필드 는 전화번호 가 될 것 이다. 호출 전화 번 호 를 포함 한 URI 이 며, 유사 한 동작 이 ACTION VIEW 이 고 데이터 필드 가 http: URI 라면 받 은 활동 은 다음 과 같다.URI 가 인용 한 데 이 터 를 불 러 오고 표시 하 는 요청 입 니 다. 데 이 터 를 처리 할 수 있 는 구성 요소 와 일치 할 때 URI 를 제외 하고 데이터 형식 (MIME 형식) 을 알 아야 합 니 다.
예 를 들 어 그림 을 표시 할 수 있 는 구성 요 소 는 소리 파일 을 재생 하 라 는 요 구 를 받 아 서 는 안 된다.
        많은 경우 이 데이터 형식 은 URI 에서 추정 할 수 있 습 니 다. - 특히 content: URIs 는 데이터 가 장치 에 저장 되 어 있 고 콘 텐 츠 제공 자가 제어 하고 있 음 을 의미 합 니 다. 그러나 형식 은 의도 대상 에 표 시 될 수 있 는 설정 입 니 다. setData () 방법 은 데 이 터 를 하나의 URI 로 만 지정 합 니 다. setType () 은 하나의 MIME 형식 만 지정 할 수 있 고 setDataAndType () 은 하나의 URI 로 만 지정 합 니 다.URI 와 MIME 형식 을 동시에 지정 합 니 다. URI 는 getData () 를 통 해 읽 고 유형 은 getType () 을 통 해 읽 습 니 다.
  Category
                          。                     。     ,           ,      :
  
  

CATEGORY_BROWSABLE 
                             -  ,       e-mail  。

CATEGORY_GADGET 
                        。

CATEGORY_HOME 
         ,                   HOME       。

CATEGORY_LAUNCHER 
                              。

CATEGORY_PREFERENCE 
           。

본문: Android 의도 와 의도 필터 (1) http://www.eoeandroid.com/thread-79766-1-1.html

좋은 웹페이지 즐겨찾기