Ger*_*ero 71 android android-intent android-activity
我见过很多不同的令人困惑的言论.
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
Run Code Online (Sandbox Code Playgroud)
的意义是什么
<action android:name="android.intent.action.MAIN" />
Run Code Online (Sandbox Code Playgroud)
和
<category android:name="android.intent.category.LAUNCHER" />
Run Code Online (Sandbox Code Playgroud)
和
<category android:name="android.intent.category.DEFAULT" />
Run Code Online (Sandbox Code Playgroud)
Com*_*are 83
ACTION_MAIN被视为申请的入口点.通常,它与CATEGORY_LAUNCHERa 结合<intent-filter>以指示应该出现在主屏幕的启动器中的活动,或者在其他任何认为自己是启动器的活动中.这样的"发射器"可以查询PackageManager,使用queryIntentActivities(),找到这样的活动并将它们显示给用户.
但是,ACTION_MAIN可以与其他类别结合使用以用于其他专门用途.例如,CATEGORY_CAR_DOCKwith ACTION_MAIN表示当用户将手机放入制造商提供的汽车底座时应被视为候选者的活动.
当a Intent使用时startActivity(),如果Intent尚未将其放入类别中,则将其放入CATEGORY_DEFAULT.因此,<activity> <intent-filter>需要指定一些 <category>,<category android:name="android.intent.category.DEFAULT" />如果没有别的话.
Lal*_*Lal 64
android.intent.action.MAIN 表示此活动是应用程序的入口点,即启动应用程序时,将创建此活动.
来自文档
ACTION_MAIN with category CATEGORY_HOME -- Launch the home screen.
Run Code Online (Sandbox Code Playgroud)
另外,从这里开始
活动操作作为主要入口点开始,不期望接收数据.
android.intent.category.DEFAULT主要用于隐式意图.如果您的活动希望通过隐式意图启动,则应在其过滤器中包含此catetory.如果您的Activity可能在没有为其分配特定类别时由隐式Intent启动,则其Intent过滤器应包含此类别.
android.intent.category.LAUNCHER
category - 提供有关要执行的操作的其他信息.
CATEGORY_LAUNCHER 意味着它应该作为顶级应用程序出现在Launcher中
查看文档..