Android系统通过查看你的AndroidManifest.xml
文件找到要启动的默认活动。
默认的活动将是具有<intent-filter>
标签的活动,如下所示:
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
当Android Studio生成你的应用程序时,<intent-filter>
通常被添加到MainActivity
类中,如下所示:
<activity
android:name=".MainActivity"
android:exported="true">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
当您添加一个新的活动时,那么该活动也将被添加到清单文件中,但没有<intent-filter>
标签。
在下面的例子中,有第二个名为SplashScreen
的活动添加到清单中:
<activity
android:name=".MainActivity"
android:exported="true">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity
android:name=".SplashScreen"
android:exported="false" />
要将SplashScreen
活动设置为默认活动,您需要像这样移动<intent-filter>
标签:
<activity
android:name=".MainActivity"
android:exported="true">
</activity>
<activity
android:name=".SplashScreen"
android:exported="true">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
您还需要将exported
属性设置为true
,如上所示。这是从Android 12版本开始添加的新要求。
完成后,运行应用程序,你应该看到第一个活动变成了有<intent-filter>
标签的那个。
如果你没有看到新的活动启动,那么你需要检查你的Android Studio中的启动配置。
在你的Android Studio的顶部菜单,选择Run > Edit Configurations...菜单来打开Run/Debug Configurations窗口。
在该窗口中,确保启动选项被设置为默认活动,如下图所示:
Android Studio将启动设置为默认活动
(android-launch-default-activity.png)
点击 "确定 "按钮,再次运行你的应用程序。
这一次,启动的默认活动应该遵循你的AndroidManifest.xml
文件中设置的<intent-filter>
。
这就是为你的Android应用程序设置默认活动的方法。 😉