Android SDK 1.5中文版 (Application基础)
2010-03-11 16:00:00 来源:WEB开发网欲更多了解如何为应用程序构建manifest文件,请参阅AndroidManifest.xml文件一节。
1.1.4 Intent Filter(过滤器)
Intent对象可以显式指定目标组件。如果指定目标组件,Android会找到这个组件(根据manifest文件中的声明)并激活它。但如果 Intent没有指定目标组件,Android就必须找到最合适的组件来响应Intent。这个过程是通过比较Intent对象和所有潜在目标对象的 Intent Filter实现。组件的Intent Filter会通知Android它所能处理的Intent类型。和组件的其他重要信息一样,Intent Filter也是在manifest文件声明。下面是上面示例的一个扩展,向Activity添加了两个Intent Filter声明:
《?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:type=”image/jpeg” /》
《category android:name=”android.intent.category.DEFAULT” /》
《/intent-filter》
《/activity》
. . .
《/application》
《/manifest》
示例中的第一个过滤器——行为“android.intent.action.MAIN”和类别“android.intent.category.LAUNCHER”的组合最常见的。它标明这个Activity将在应用程序启动项中显示,即用户在设备上看到的可以启动的应用程序列表。换句话说,这个Activity是应用程序的入口,是用户选择该应用程序后所看到的第一个Activity。
第二个过滤器声明了这个Activity可以在特定类型的数据上执行的操作。
组件可以有任意数量的Intent Filter,每个声明一系列不同的功能。如果没有任何过滤器,则只能被显式声明了目标组件名称的Intent激活。
对于在代码中创建并注册的广播接收器,Intent Filter直接实例化为IntentFilter对象。所有其它的过滤器都在manifest文件设定。
关于Intent Filter的其他信息,请参阅:Intent和Intent Filter。
更多精彩
赞助商链接