android 학습 노트(둘)
4376 단어 intentintent-filter
Intent는 명시적 Intent와 암시적 Intent로 나눌 수 있습니다.
명시적 Intent: 대상 어셈블리의 Intent를 명시적으로 나타냅니다.
Intent intent=new Intent();
intent.setClass(MainActivity.this,MyActivity.class);
// Intent setClassName , < >,< >
//intent.setClassName("com.onecm.intent", "com.onecm.intent.MyActivity");
startActivity(intent);
참고: 위의 기본 방법을 사용하여 최소한 Manifest 파일에 Activity 이름을 등록해야 합니다. 그렇지 않으면 시스템에서 Activity 이름을 찾을 수 없습니다.
<activity android:name="com.onecm.hello.MyActivity"><
/activity>
<!-- , android:permission=""-->
<activity android:name="com.onecm.hello.MyActivity" android:exported="true">
</activity>
암시적 Intent:
Intent intent=new Intent();
intent.setAction("com.onecm.hello");
intent.addCategory(Intent.CATEGORY_DEFAULT);
startActivity(intent);
/* manifest action activity,
activity action , action < ><intent.action>< >,
String actionName = "< >.com.onecm.hello";
Intent intent = new Intent(actionName); */
Manifest activity ,
<activity android:name="com.example.hello.MyActivity">
<intent-filter>
<action android:name="com.onecm.hello"></action><!-- category.DEFAULT ,
, activity , category -->
<category andorid:name="android.intent.category.DEFAULT">
</category>
</intent-filter>
</activity>
2. inter-filter(의도 필터)
IntentFilter 객체는 어셈블리에서 응답하고 처리할 수 없는 Intent를 필터링하여 자신의 관심 있는 Intent만 수신하여 처리합니다.IntentFilter는 어셈블리가 원하는 Intent만 나열하지만 IntentFilter는 암시적 Intent만 필터링하고 명시적 Intent는 대상 어셈블리로 직접 전달됩니다.Android 어셈블리에는 하나 이상의 IntentFilter가 있을 수 있으며 각 IntentFilter는 서로 독립적이며 검증 중 하나만 통과하면 됩니다.브로드캐스트 필터링에 사용되는 IntentFilter를 제외한 다른 IntentFilter는 AndroidManifest에 있어야 합니다.xml 파일에서 설명합니다.
1. 액션 테스트
<intent-filter> <action android:name="com.example.project.SHOW_CURRENT" />
<action android:name="com.example.project.SHOW_RECENT" />
<action android:name="com.example.project.SHOW_PENDING" />
</intent-filter>
만약 Intent가 요청한 Action이
Intent 요청이나
(1)
(2) 반대로 Intent 요청에 Action 형식이 설정되어 있지 않으면
2. 카테고리 테스트
<intent-filter>
<category android:name="android.Intent.Category.DEFAULT" />
<category android:name="android.Intent.Category.BROWSABLE" />
</intent-filter>
Intent 요청의 모든Category가 구성 요소의 한 IntentFilter의
3. 데이터 테스트
<intent-filter>
<data android:type="video/mpeg" android:scheme="http"/>
<data android:type="audio/mpeg" android:scheme="http"/>
</intent-filter>
요소는 받아들일 Intent 요청의 데이터 URI와 데이터 형식을 지정합니다. URI는 세 부분으로 나뉘어 일치합니다: scheme, authority, path.여기서 setData()로 설정된 Intent 요청의 URI 데이터 유형과 scheme는 IntentFilter에서 지정한 것과 일치해야 합니다.IntentFilter에 authority나 path가 지정되어 있으면, 그것들도 일치해야만 테스트를 통과할 수 있습니다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
android 학습 노트(둘)Intent는 명시적 Intent와 암시적 Intent로 나눌 수 있습니다. 명시적 Intent: 대상 어셈블리의 Intent를 명시적으로 나타냅니다. 그렇지 않으면 시스템에서 Activity 이름을 찾을 수 없습니...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.