Android Manifest-фильтр намерений и активность

может ли кто - нибудь объяснить следующие строки в манифесте -

    <activity
        android:name=".AboutUs"
        android:label="@string/app_name">
        <intent-filter >
            <action android:name="com.example.app1.ABOUT" />
            <category android:name="android.intent.category.DEFAULT"/>
        </intent-filter>

    </activity>    

как важны поля в фильтре активности и намерения и когда они используются/ссылаются ? Извините, я пытался прочитать документацию, но все еще не мог понять многого.

спасибо

3 ответов


android:name=".AboutUs"

это имя вашего класса активности, Точка на передней панели является сокращенной нотацией для вашего пакета. Так что это на самом деле означает com.your.package.name.AboutUs что означает, что ваш java-файл, представляющий это действие, называется AboutUs.java

android:label="@string/app_name"

label-это строка, которая отображается в пусковой установке (если действие указано в пусковой установке) и в верхней части окна, когда действие открыто.

<intent-filter > ... </intent-filter>

intent filter определяет намерения, которые ваша деятельность "слушает" для того, чтобы запустить.

<action android:name="com.example.app1.ABOUT" />
<category android:name="android.intent.category.DEFAULT"/>

действие и категория-это оба поля, которые устанавливаются на намерение, прежде чем оно "выстрелит" в систему. Затем система будет искать любые действия, которые соответствуют как действию, так и категории, и если она найдет один, то она запустит это действие, или если она найдет несколько, она покажет пользователю все из них и позволит им выбрать.

в вашем случае ваше действие, которое вы слушаете com.example.app1.ABOUT пользовательское действие, которое является специфическим для вашего приложения не одно из системных действий.

Итак, вот как может выглядеть намерение, которое начнет эту конкретную деятельность:

Intent i = new Intent();
i.setAction("com.example.app1.ABOUT");
i.addCategory("android.intent.category.DEFAULT");
startActivity(i);

обратите внимание, что поскольку вы создали пользовательское действие, такое намерение не требует доступа к вашей AboutUs.class таким образом, это намерение может быть технически уволено из любого приложения на устройстве, и оно запустится в вашу деятельность.


на ACTION У вас есть этот ответ и для категории по умолчанию у вас есть это ответ


действие-это компонент приложения, который предоставляет экран, с которым пользователи могут взаимодействовать, чтобы что-то сделать, например, набрать номер телефона, сделать снимок, отправить электронное письмо или просмотреть карту. Чтобы объявить действие, откройте файл манифеста и добавьте элемент в качестве дочернего элемента, как в Примере.

  • атрибут android:name является единственным обязательным атрибутом-он указывает имя класса действия.
  • атрибут android:label является читаемая пользователем метка для приложения в целом и метка по умолчанию для каждого из компонентов приложения

элемент также может указать различные фильтры намерений-с помощью элемента-для объявления того, как другие компоненты приложения могут активировать его.

  • элемент указывает, что это "главная" точка входа в приложение.
  • элемент указывает, что это действие должно быть указано в программе запуска приложений системы (чтобы разрешить пользователям запускать это действие).

пожалуйста, обратитесь к http://developer.android.com/guide/components/activities.html