Android-インテントと暗黙のインテントおよびIntentFilterマッチングルールを表示します

1つ:インテントの表示誰もがインテントの表示に非常に熟練していると思うので、
ここでは詳しく説明しません。

 button.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Intent intent = new Intent(MainActivity.this,FirstActivity.class);
                startActivity(intent);
            }
        });

最初にIntentFilterマッチングルールについて説明し、次に暗黙のインテントについて説明します。理解しやすくなります。
2:IntentFilter一致ルールIntentFilter
のフィルタリング情報には、アクション、カテゴリ、およびデータが含まれます。
フィルタリングリストを一致させる場合は、フィルタリングリストのアクション、カテゴリ、およびデータ情報を同時に一致させる必要があります。一致しない場合は、マッチングは失敗します。インテントがそれらの1つと一致する限り、アクティビティはIntentFiltersの複数のグループを持つことができ、IntentFiltersのグループは複数のアクション、カテゴリ、データ
1を持つこともできます。
アクション一致ルールアクションは文字列であり、システムによって事前定義されています、そして私たちも傲慢にすることができます。
一致ルール:IntentFiltersのグループは、複数のアクションを持つことができます。IntentのアクションがIntentFilterのアクションのいずれかと一致する限り、成功します。一致が成功すると、文字列が同じになります。文字列では大文字と小文字が区別されます。インテントでアクションが指定されていない場合、一致は失敗します。

2.
カテゴリ一致ルールカテゴリは、システムによって事前定義された文字列であり、自分で定義することもできます。
システムはstartActivityを呼び出すときにデフォルトでインテントを追加するため、インテントはカテゴリを指定しなくても正常に一致できますandroid.intent.category.DEFAULTが、インテントがカテゴリを指定する場合は、IntentFilterのカテゴリと一致する必要があります。一致しない場合、一致は失敗します。

3.ルール
データに一致するデータは、mimeTypeとURIで構成されます。
mimeTypeは、画像、ビデオ、オーディオなどのメディアタイプを指します。URI
構造は次のとおりです。

<scheme>://<host>:<port>/[<path> | <pathPrefix> | <pathPattern>]

スキーム:http、ファイルなどのURIモード。スキームが指定されていない場合、URIパラメーターは無効です。つまり、URIは無効です。
host:URIのホスト名。hostが指定されていない場合、URIのパラメーターは無効です。つまり、URIは無効です。
ポート:ポート番号、スキームとホストが存在し、合理的である場合のみ、ポートは意味があり
ますパス:完全なパス
pathPrefix:パスプレフィックス情報
pathPattern:完全なパス、ワイルドカードを含めることができます
一致ルール:
インテントはデータを指定する必要があり、IntentFilterのいずれかに一致する必要がありますデータの一致が成功した場合にのみ、それは理にかなっています。
mimeTypeを個別に指定すると、URIのデフォルト値はcontentとfileであるため、URIを知らなくても正常に照合できます。

3:暗黙のインテント
暗黙のインテントは、コンポーネント情報を明確に指す必要があります。暗黙のインテントは、IntentFilterで設定されたフィルタリング情報と一致する必要があります。
まず、マニフェストファイルのアクションとカテゴリをカスタマイズします(インテントと一致する限り、意味のないアクションとカテゴリをカスタマイズできることに注意してください)。

<activity android:name=".FirstActivity">
            <intent-filter>
                <action android:name="com.example.implicit.Activity"></action>
                <category android:name="android.intent.category.DEFAULT"></category>
                <category android:name="com.example.implicit.FirstActivity"/>
        </intent-filter>
        </activity>

次に、ManActivityで暗黙的にインテントします

 button.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Intent intent = new Intent("com.example.implicit.Activity");
                intent.addCategory("com.example.implicit.FirstActivity");
                startActivity(intent);
            }
        });

事前定義されたアクションとカテゴリの属性値
アクションとカテゴリの値はカスタマイズできます。Androidシステムには、システムの事前定義されたアクティビティとサービスを開始するための多くの事前定義された定数値も用意されています。
以下に、いくつかの事前定義されたインジケーターを紹介します

Action常量            对应的字符串                    说明

ACTION_MIAN    android.intent.action.MAIN        应用程序入口  
ACTION_VIEW    android.intent.action.VIEW        显示指定数据
ACTION_EDIT    android.intent.action.EDIT        编辑指定数据
ACTION_DIAL    android.intent.action.DIAL        显示拨号面板
ACTION_CALL    android.intent.action.CALL        向指定用户打电话
ACTION_SEND    android.intent.action.SEND        向其他人发送数据
ACTION_SENDTO  android.intent.action.MESSAGE     向其他人发送消息
ACTION_ANSWER  android.intent.action.ANSWER        应答电话
ACTION_INSERT  android.intent.action.INSERT        插入数据
ACTION_DELETE  android.intent.action.DELETE        删除数据
ACTION_RUN     android.intent.action.RUN           运行数据
ACTION_SYNC    android.intent.action.SYNC          用户数据同步
ACTION_PICK_ACTIVITY android.intent.action.PICK_ACTIVITY  选择Activity
ACTION_SEARCH  android.intent.action.SEARCH        执行搜索
ACTION_WEB_SEARCH android.intent.action.WEB_SEARCH 执行Web搜索

Intent类中与Category相关的常量值列表

Category            常量对应的字符串                           说明
CATEGORY_DEFAULT    android.intent.category.DEFAULT           默认的Category
CATEGORY_TAB        android.intent.category.TAB指定Activity   作为TabActivity的Tab页
CATEGORY_LAUNCHER   android.intent.category.LAUNCHERActivity  显示在顶级程序列表中
CATEGORY_INFO       android.intent.category.INFO              用于提供包信息CATEGORY_HOMEandroid.intent.category.HOME设置该Activity随系统启动而运行
CATEGORY_PREFERENCE android.intent.category.PREFERENCE       设置Activity是参数面板

おすすめ

転載: blog.csdn.net/News53231323/article/details/113981962