[Android 학습 노트] Intent 상세 설명

3997 단어 androidintent
1. Intent 소개
Android 프로그램의 세 가지 핵심 구성 요소 인 Activity, services, 방송 수신 기 는 intent 를 통 해 메 시 지 를 전달 합 니 다.intent 메 시 지 는 실행 할 때 서로 다른 구성 요 소 를 연결 하 는 것 이 편리 합 니 다. 이 구성 요 소 는 같은 프로그램 일 수도 있 고 다 를 수도 있 습 니 다.하나의 intent 대상 은 수 동적 인 데이터 구조 로 작업 에 대한 추상 적 인 설명 이나 보통 방송의 인 스 턴 스, 발생 하 는 일 에 대한 설명, 알림 을 저장 합 니 다.인 텐트 를 서로 다른 구성 요소 로 전달 하 는 메커니즘 은 서로 다르다.
  • intent 대상 은 Context. startActivity () 나 Activity. startActivity ForResult () 에 전달 되 어 Activity 를 시작 하거나 존재 하 는 Activity 에 게 뭔 가 를 하 게 하 는 것 이다.(Activity. setResult () 에 게 Activity 의 정 보 를 전달 할 수도 있 습 니 다. 이 함 수 는 startActivity ForResult () 라 고 합 니 다.)
  • intent 대상 이 함수 에 전달 하여 service 를 초기 화하 거나 새로운 명령 을 진행 중인 service 에 나 누 어 줍 니 다.마찬가지 로 intent 는 호출 구성 요소 와 대상 서비스 간 의 관 계 를 만 들 기 위해 전달 합 니 다.서비스 가 실행 되 지 않 으 면 시작 할 수 있 습 니 다.
  • intent 는 모든 방송 함수 (예 를 들 어 Context. sendBroadcast (), Context. sendOrdered Broadcast (), Context. sendSticky Broadcast () 에 전달 할 수 있 으 며, intent 는 모든 관심 있 는 방송 수신 자 에 게 할당 된다.많은 방송 원 이 시스템 내 핵 에 있다.

  • 2. Intent 포함 내용
    1.Action 실행 해 야 할 동작의 이름 이나 라디오 인 텐트 에서 동작 이 발생 하고 보고 되 었 습 니 다.intent 클래스 는 동작의 상수 를 정의 합 니 다. 다음 과 같 습 니 다.
    Constant
    Target component
    Action ACTION_CALL
    activity
    Initiate a phone call. ACTION_EDIT
    activity
    Display data for the user to edit. ACTION_MAIN
    activity
    Start up as the initial activity of a task, with no data input and no returned output. ACTION_SYNC
    activity
    Synchronize data on a server with data on the mobile device. ACTION_BATTERY_LOW
    broadcast receiver
    A warning that the battery is low. ACTION_HEADSET_PLUG
    broadcast receiver
    A headset has been plugged into the device, or unplugged from it. ACTION_SCREEN_ON
    broadcast receiver
    The screen has been turned on. ACTION_TIMEZONE_CHANGED
    broadcast receiver
    The setting for the time zone has changed.
    intent 의 동작 은 setAction () 함수 설정 을 통 해 getAction () 함수 로 읽 습 니 다.
    2.Data  데이터 URI 와 MIME 형식의 데이터 입 니 다.서로 다른 동작 과 서로 다른 데이터 배합.예 를 들 어 동작 영역 이 ACTION 이 라면EDIT, 데이터 필드 는 표시, 편집 을 위해 문 서 를 포함 하 는 URI 가 필요 합 니 다.액 션 이 ACTION 이 라면CALL, 데이터 필드 는 전화 번 호 를 가 진 tel: URI 가 필요 합 니 다.같은, 동작 이 ACTION 이 라면VIEW 데이터 필드 는 http: URI 입 니 다. Activity 를 받 으 려 면 URI 가 참조 하 는 모든 데 이 터 를 호출 하고 다운로드 하 며 표시 해 야 합 니 다.
    3.Extra 추가 키 값 은 정보 에 대한 것 입 니 다. 이 키 값 은 intent 를 처리 하 는 구성 요소 에 분 배 됩 니 다.몇몇 열의 put. get.. 방법 으로 처리 합 니 다.
    4. Flag 은 안 드 로 이 드 시스템 이 목표 activity 를 어떻게 시작 하 는 지 알려 주거 나 목표 activity 를 시작 한 후에 어떤 후속 작업 을 해 야 하 는 지 알려 주 는 데 사 용 됩 니 다. 모든 flag 는 Intent 클래스 에서 정의 되 며, 일부 flag 는 다음 과 같 습 니 다: FLAGACTIVITY_NEW_TASK - 알림 시스템 은 대상 activity 를 새로운 task 의 초기 activity 로 합 니 다.FLAG_ACTIVITY_NO_HISTORY - 알림 시스템 은 대상 activity 를 역사 창고 에 넣 지 마 십시오.FLAG_FROM_BACKGROUND - 알림 시스템 이 Intent 는 사용자 의 직접 선택 이 아 닌 배경 작업 에서 유래 합 니 다.
    3. Intent filter
    IntentFilter 클래스 는 Intent 필 터 를 표시 합 니 다. 대부분의 경우, 모든 component 는 하나 이상 의 IntentFilter 를 정의 합 니 다. 처리 가능 한 Intent 를 표시 하 는 데 사 용 됩 니 다. 일반적으로 component 의 IntentFilter 는 AndroidManifest. xml 파일 에서 정의 해 야 합 니 다. 정의 하 는 방법: < activity >, < receiver >,< service > 요소 에 하나 이상 의 < intent - filter > 하위 요 소 를 추가 합 니 다. 예 를 들 어:
    <!--          Activity -->
    <activity android:name=".FirstActivity">
    <intent-filter>
    <action android:name="android.intent.action.MAIN" />
    <category android:name="android.intent.category.LAUNCHER" />
    </intent-filter>
    </activity>
    

    메모: 안 드 로 이 드 시스템 이 암시 적 인 Intent 를 처리 할 때 Intent 와 IntentFilter 의 action, data, category 속성 을 비교 합 니 다. 상기 3 개의 속성 이 모두 일치 하면 IntentFilter 가 속 한 component 는 대상 구성 요소 의 후보 가 될 수 있 습 니 다 (조건 에 맞 는 component 가 여러 개 존재 할 때).
    더 많은 내용 은 여 기 를 참고 하여 링크 를 열 수 있 습 니 다.
    기타
    참고 문헌: 공식 문서
    http://www.cnblogs.com/liushengjie/archive/2012/08/30/2663066.html

    좋은 웹페이지 즐겨찾기