Android 开发之应用程序基础及组件
2010-04-20 05:21:00 来源:WEB开发网其它组件也以类似的方法声明—— 元素用于声明服务, 元素用于声明广播接收者,而元素用于声明内容提供者。清单文件中未进行声明的活动、服务以及内容提供者将不为系统所见,从而也就不会被运行。然而,广播接收者既可以在清单文件中声明,也可以在代码中动态的创建(作为BroadcastReceiver对象)且调用Context.registerReceiver()方式注册到系统。
4、Intent过滤器
Intent对象可以显式地指定目标组件。如果进行了这种指定,Android会找到这个组件(依据清单文件中的声明)并激活它。但如果Intent没有进行显式的指定,Android就必须为它找到对于intent来说最合适的组件。这个过程是通过比较Intent对象和所有可能对象的intent过滤器完成的。组件的intent过滤器会告知Android它所能处理的intent类型。如同其它关于组件的必要信息一样,它们在清单文件中进行声明的。这里是上面示例的一个扩展,其中加入了针对活动的两个intent过滤器声明:
< ?xml version="1.0" encoding="utf-8"? >
< manifest . . . >
< application . . . >
< activity android:name="com.example.project.FreneticActivity"
android:icon="@drawable/small_pic.png"
android:label="@string/freneticLabel"
. . . >
< intent-filter . . . >
< action android:name="android.intent.action.MAIN" / >
< category android:name="android.intent.category.LAUNCHER" / >
< /intent-filter >
< intent-filter . . . >
< action android:name="com.example.project.BOUNCE" / >
< data android:mimeType="image/jpeg" / >
< category android:name="android.intent.category.DEFAULT" / >
< /intent-filter >
< /activity >
. . .
< /application >
< /manifest >
示例中的第一个过滤器——action:“android.intent.action.MAIN”和 category:“android.intent.category.LAUNCHER”的组合,是常见的。它标记这个活动显示在应用程序启动器中,用户在设备上看到的可启动的应用程序列表。换句话说,这个活动是应用程序的入口,是用户选择运行这个应用程序后所见到的第一个活动。第二个过滤器声明了这个活动针对特定类型的数据。
更多精彩
赞助商链接