在开发 Android 应用程序时,您会在AndroidManifest.xml 文件中看到一个android.intent.action.MAIN 。
一个清单文件的例子可以是这样的:
<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>
定义android.intent.action.MAIN ,是为了让安卓操作系统(OS)知道应用程序启动时要运行什么活动类。
在上面的例子中,<intent-filter> 标签被添加到<activity> 标签中,其名称为.MainActivity 。
通过设置action.MAIN 意图过滤器,Android操作系统将在你打开应用程序时运行MainActivity 类。
当你使用Android Studio生成一个Android应用程序时,action 意向过滤器通常与category 意向过滤器的category.LAUNCHER 搭配。
category 过滤器用于让Android OS知道当应用程序从启动器启动时要运行什么活动。
在安卓术语中,启动器是一种特定类型的安卓应用程序,可用于启动其他应用程序。
在安卓手机和平板电脑中,启动器是设备的主屏幕。
action 和category 意图过滤器都是必需的,以确定应用程序从Android设备启动时要运行的活动类。
没有它们,应用程序将不会被启动,Android Studio将回应以下错误:
Could not identify launch activity: Default Activity not found
Error while Launching activity
Failed to launch an application on all devices
由于android.intent.action.MAIN 只让Android OS知道要运行的主要活动,你可以将它与其他类别的过滤器配对。
例如,你可以将action.MAIN 过滤器与 category.DESK_DOCK 过滤器配对,以定义当设备插入到桌面底座时要运行的活动。
总而言之,一个标准的安卓手机应用程序需要一个activity ,同时有action.MAIN 和category.LAUNCHER 过滤器。
这些过滤器让Android操作系统知道当应用程序启动时要寻找什么活动类。