acción、categoría与Datos

uno, acción

Cuando se utiliza una intención para iniciar una actividad implícitamente, se debe especificar una acción para la intención. La actividad objetivo puede definir una o más acciones en <intent-filter>. Por ejemplo:

    <intent-filter>
        <action android:name="com.test.action.ACT2" />
        <action android:name="com.test.action.ACT3" />
        <action android:name="com.test.action.ACT4" />

        <category android:name="android.intent.category.DEFAULT" />
        <category android:name="com.test.CATEGORY_ACT2" />
    </intent-filter>

2. Categoría

Cuando se utiliza una intención para iniciar una actividad implícitamente, se pueden especificar cero o más categorías. El archivo de manifiesto de la actividad de destino puede definir varias categorías en <intent-filter>. Dado que el Intent llevará un "android.intent.category.DEFAULT" de forma predeterminada, generalmente es necesario definir al menos una <category android:name="android.intent.category.DEFAULT" /> en el archivo de manifiesto de la actividad de destino. Hay una excepción, que es que no es necesario definir la configuración de categoría predeterminada en la actividad de inicio principal, como por ejemplo:

    <intent-filter>
        <action android:name="android.intent.action.MAIN" />
        <category android:name="android.intent.category.LAUNCHER" />
    </intent-filter>

Tres, reglas de coincidencia de acciones y categorías

1. Una intención conlleva una acción, de modo que siempre que haya una acción coincidente en la configuración del archivo de manifiesto de actividad de destino, la coincidencia será exitosa;

2. Una intención puede incluir varias categorías (al menos una, porque llevará android.intent.category.DEFAULT de forma predeterminada), por lo que solo el <intent-filter> del archivo de manifiesto de actividad de destino contiene todas las categorías que incluye la intención. para que coincida con éxito.

Nota: Dado que android.intent.category.DEFAULT se incluye de forma predeterminada, la configuración del archivo de manifiesto de actividad definida debe incluir android.intent.category.DEFAULT para que Intent lo inicie implícitamente.

Cuatro, datos

También podemos configurar una etiqueta de datos en la etiqueta <intent-filter> para especificar con mayor precisión a qué tipo de datos puede responder la Actividad actual. La etiqueta de datos puede configurar lo siguiente:

android:scheme: se utiliza para especificar la parte del protocolo de los datos, como http.
android:host: se utiliza para especificar la parte del nombre de host de los datos.
android:puerto: se utiliza para especificar la parte del puerto de los datos.
android:ruta: se utiliza para especificar la parte de la ruta después del nombre del host y el puerto.
android:mimeType: se utiliza para especificar el tipo de datos que se pueden procesar, permitiendo el uso de comodines para la especificación.

Es muy sencillo especificar el método de coincidencia de los datos. El formato de los datos en el Intent debe ser coherente con el formato definido en la etiqueta de datos para que la coincidencia sea exitosa.

五、android.intent.action.MAIN与android.intent.category.LAUNCHER

Estas dos configuraciones se configuran bajo la etiqueta <intent-filter> de la actividad en el archivo de manifiesto AndroidManifest.xml. en,

android.intent.action.MAIN  indica la entrada de la aplicación, es decir, la primera actividad que se inicia cuando se hace clic en el icono de la aplicación;

android.intent.category.LAUNCHER indica si se muestra la actividad actual en la lista de programas (escritorio);

  1. El ícono está configurado por android:  icon y el título está configurado por android:label  ;
  2. Si el icono y la etiqueta no están configurados en la actividad, se mostrará el icono y la etiqueta configurados en la aplicación ;
  3. Si el ícono y la etiqueta no están configurados en la aplicación, se mostrará el ícono de la aplicación predeterminada del sistema y la identificación de la aplicación se mostrará como título );

Escenario 1: si solo se configura android.intent.action.MAIN o android.intent.category.LAUNCHER, el ícono de la aplicación no se mostrará en la lista de programas; por ejemplo:

    <activity
        android:name=".TestActivity1"
        android:exported="true"
        android:icon="@drawable/baidu1"
        android:label="测试动画界面1"
        >
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
        </intent-filter>
    </activity>
    <activity
        android:name=".TestActivity2"
        android:exported="true"
        android:icon="@drawable/baidu2"
        android:label="测试界面2"
        >
        <intent-filter>
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>

Escenario 2: configure android.intent.action.MAIN y android.intent.category.LAUNCHER en una actividad, la lista de programas mostrará el icono y la etiqueta de la actividad actual;

Escenario 3: configure android.intent.action.MAIN y android.intent.category.LAUNCHER en múltiples actividades, luego la lista de programas mostrará los íconos y etiquetas configurados por múltiples actividades. De la siguiente manera, se mostrarán dos íconos y títulos en el escritorio, y al hacer clic en un ícono se ingresará a la actividad correspondiente:

    <activity
        android:name=".TestActivity1"
        android:exported="true"
        android:icon="@drawable/baidu1"
        android:label="测试动画界面1"
        >
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER"
        </intent-filter>
    </activity>
    <activity
        android:name=".TestActivity2"
        android:exported="true"
        android:icon="@drawable/baidu2"
        android:label="测试界面2"
        >
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>

Resumen: android.intent.action.MAIN y android.intent.category.LAUNCHER deben configurarse juntos para mostrar el ícono y el título de la aplicación normalmente.

Nota: La lista de aplicaciones en la configuración del sistema debe leer el ícono y la etiqueta configurados en la aplicación. Si no hay configuración en la aplicación, el ícono de la aplicación predeterminada del sistema se mostrará como el ícono de la aplicación actual y la identificación de la aplicación. se mostrará como título .

Supongo que te gusta

Origin blog.csdn.net/hnjcxy/article/details/131940667
Recomendado
Clasificación