10.6. 更新Manifest文件
10.6.更新Manifest文件
现在有了TimelineActivity,大可让它作为Yamba程序的“主界面”。毕竟比起自言自语,用户更喜欢关注朋友的动态。
这就需要更新manifest文件了。同原先一样,我们将TimelineActivity列在AndroidManifest.xml文件的<activity>元素中。可参考"Update Manifest File"一节中添加选项界面时的情景。
<activity android:name=".TimelineActivity" />
要把它设为程序的“主界面”,我们需要为它注册到特定的Intent。通常情况是,用户点击启动你的程序,系统就会发送一个Intent。你必须有个Activity能“侦听”到这个Intent才行,因此Android提供了IntentFilter,使之可以过滤出各自感兴趣的Intent。在XML中,它通过<intent-filter>元素表示,其下至少应含有一个<action>元素,以表示我们感兴趣的Intent。
你可以注意到,StatusActivity比PrefsActivity多出了一段XML代码,这便是IntentFilter的部分。
里面有个特殊的action,android.intent.action.MAIN,即指明了在用户打算启动我们的程序时首先启动的组件。除此之外还有个<category>元素,用以通知系统这个程序会被加入到main Launcher之中,这一来用户就可以见到我们程序的图标,点击即可启动。这个目录(category)的定义就是android.intent.category.LAUNCHER。
好,要把TimelineActivity置为主入口,我们只需加上相应的声明,再把StatusActivity中的代码挪过去即可。
例 10.9. AndroidManifest.xml
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
android:versionCode="1" android:versionName="1.0" package="com.marakana.yamba5">
<application android:icon="@drawable/icon" android:label="@string/app_name"
android:name=".YambaApplication">
<activity android:name=".TimelineActivity" android:label="@string/titleTimeline">
<intent-filter> <!-- -->
<action android:name="android.intent.action.MAIN" /> <!-- -->
<category android:name="android.intent.category.LAUNCHER" /> <!-- -->
</intent-filter>
</activity>
<activity android:name=".PrefsActivity" android:label="@string/titlePrefs" />
<activity android:name=".StatusActivity" android:label="@string/titleStatus" /> <!-- -->
<service android:name=".UpdaterService" />
</application>
<uses-sdk android:minSdkVersion="8" />
<uses-permission android:name="android.permission.INTERNET" />
</manifest>
- <intent-filter>将这个Activity所关心的Intent列出,并在系统中注册。
- 通知系统,这就是用户启动时显示的主界面。
- 目录LAUNCHER通知Home程序,将本程序的图标显示在Launcher中。
- StatusActivity就不需要IntentFilter了。