在Intent Filters的Category字段中使用android.intent.category.DEFAULT的目的是什么?
android.intent.category.DEFAULT
llmtgqce1#
类别用于隐式Intent。因此,如果您的Activity可以在没有其他特定类别分配给Activity的情况下由隐式Intent启动,则Activity的Intent筛选器应包括此类别。(即使Intent筛选器中有其他类别)。如果您确定Activity必须与任何其他类别一起调用,则不要使用默认值。将类别设置为默认并不意味着在应用启动时默认使用此Activity。Activity只是对系统说“哦,我可以启动,即使启动者Intent的类别设置为 Nothing!“
7kqas0il2#
此类别主要用于隐式Intent。如果您的Activity希望由隐式Intent启动,则应在其筛选器中包含此类别。我认为“默认”这个词应该理解为“默认***候选***"。如果对一条数据的操作解析为多个活动,那么Android将向用户呈现所有候选活动,用户可以选择自己喜欢的默认活动。参考编号:http://developer.android.com/guide/components/intents-filters.html从该页摘录:Android将所有传递给startActivity()的隐式Intent视为至少包含一个类别:“android.intent. CATEGORY.DEFAULT”(类别默认常量)。因此,愿意接收隐式Intent的Activity必须在其Intent过滤器中包含“android.intent.category.DEFAULT”。(具有“android.intent.action.MAIN”和“android.intent.category.LAUNCHER”设置的过滤器除外。它们标记开始新任务和在启动器屏幕上显示的Activity。它们可以包含“android. intent. category.DEFAULT”在类别列表中,但不需要。)
wmtdaxz33#
活动将需要支持CATEGORY_DEFAULT,以便可以通过Context.startActivity()找到它们。若要接收隐式Intent,必须在Intent筛选器中包含CATEGORY_DEFAULT类别。方法startActivity()和startActivityForResult()将所有Intent视为声明了CATEGORY_DEFAULT类别。如果未在Intent筛选器中声明该类别,则不会将任何隐式Intent解析为Activity。
xxb16uws4#
它实际上是为了确保你的其他Activity可以在应用运行时被调用。LAUNCHER会让拥有它的Activity成为第一个启动的Activity。要使用Intent来访问其他Activity,它们必须通过设置DEFAULT被列为“实际”Activity。这是我所知道的,所以如果它是错误的,不要引用我的话。
oaxa6hgo5#
它用于将某些操作声明为默认操作(正如它名字所暗示的)。让我们假设我们有一个记事本应用程序(参考android记事本示例)。应用程序的第一页包含所有记事本文件的列表。当选择一个记事本文件时,可以执行编辑笔记、删除笔记等可以执行。但我想使编辑作为我的默认操作,这意味着当我按下我的键盘中心按钮,编辑窗口应该打开。
rdrgkggo6#
类别:
匹配任何隐式Intent。要使Activity接收任何隐式Intent,必须包含此类别。https://codelabs.developers.google.com/codelabs/android-training-activity-with-implicit-intent/index.html?index=..%2F..%2Fandroid-training#6
t40tm48m7#
https://developer.android.com/guide/components/intents-filters若要接收隐式Intent,必须在Intent筛选器中包含CATEGORY_DEFAULT类别。startActivity()与startActivityForResult()方法将所有Intent视为声明了CATEGORY_DEFAULT类别。如果未在Intent筛选器中声明此类别,则不会将任何隐式Intent解析为您的Activity。
vuv7lop38#
在Activity接受隐式Intent之前,Intent必须通过类别测试:Intent中的每个类别必须与Activity的Intent过滤器中的完全相同的类别匹配。类别DEFAULT自动应用于所有隐式Intent(默认情况下),因此,由于上述原因,希望接收任何隐式Intent的每个Activity都必须在其Intent过滤器中包含此类别。来源
DEFAULT
8条答案
按热度按时间llmtgqce1#
类别用于隐式Intent。因此,如果您的Activity可以在没有其他特定类别分配给Activity的情况下由隐式Intent启动,则Activity的Intent筛选器应包括此类别。(即使Intent筛选器中有其他类别)。如果您确定Activity必须与任何其他类别一起调用,则不要使用默认值。
将类别设置为默认并不意味着在应用启动时默认使用此Activity。Activity只是对系统说“哦,我可以启动,即使启动者Intent的类别设置为 Nothing!“
7kqas0il2#
此类别主要用于隐式Intent。如果您的Activity希望由隐式Intent启动,则应在其筛选器中包含此类别。
我认为“默认”这个词应该理解为“默认***候选***"。如果对一条数据的操作解析为多个活动,那么Android将向用户呈现所有候选活动,用户可以选择自己喜欢的默认活动。
参考编号:
http://developer.android.com/guide/components/intents-filters.html
从该页摘录:
Android将所有传递给startActivity()的隐式Intent视为至少包含一个类别:“android.intent. CATEGORY.DEFAULT”(类别默认常量)。因此,愿意接收隐式Intent的Activity必须在其Intent过滤器中包含“android.intent.category.DEFAULT”。(具有“android.intent.action.MAIN”和“android.intent.category.LAUNCHER”设置的过滤器除外。它们标记开始新任务和在启动器屏幕上显示的Activity。它们可以包含“android. intent. category.DEFAULT”在类别列表中,但不需要。)
wmtdaxz33#
活动将需要支持CATEGORY_DEFAULT,以便可以通过Context.startActivity()找到它们。
若要接收隐式Intent,必须在Intent筛选器中包含CATEGORY_DEFAULT类别。方法startActivity()和startActivityForResult()将所有Intent视为声明了CATEGORY_DEFAULT类别。如果未在Intent筛选器中声明该类别,则不会将任何隐式Intent解析为Activity。
xxb16uws4#
它实际上是为了确保你的其他Activity可以在应用运行时被调用。LAUNCHER会让拥有它的Activity成为第一个启动的Activity。要使用Intent来访问其他Activity,它们必须通过设置DEFAULT被列为“实际”Activity。这是我所知道的,所以如果它是错误的,不要引用我的话。
oaxa6hgo5#
它用于将某些操作声明为默认操作(正如它名字所暗示的)。让我们假设我们有一个记事本应用程序(参考android记事本示例)。应用程序的第一页包含所有记事本文件的列表。当选择一个记事本文件时,可以执行编辑笔记、删除笔记等可以执行。但我想使编辑作为我的默认操作,这意味着当我按下我的键盘中心按钮,编辑窗口应该打开。
rdrgkggo6#
类别:
匹配任何隐式Intent。要使Activity接收任何隐式Intent,必须包含此类别。
https://codelabs.developers.google.com/codelabs/android-training-activity-with-implicit-intent/index.html?index=..%2F..%2Fandroid-training#6
t40tm48m7#
https://developer.android.com/guide/components/intents-filters
若要接收隐式Intent,必须在Intent筛选器中包含CATEGORY_DEFAULT类别。startActivity()与startActivityForResult()方法将所有Intent视为声明了CATEGORY_DEFAULT类别。如果未在Intent筛选器中声明此类别,则不会将任何隐式Intent解析为您的Activity。
vuv7lop38#
在Activity接受隐式Intent之前,Intent必须通过类别测试:Intent中的每个类别必须与Activity的Intent过滤器中的完全相同的类别匹配。
类别
DEFAULT
自动应用于所有隐式Intent(默认情况下),因此,由于上述原因,希望接收任何隐式Intent的每个Activity都必须在其Intent过滤器中包含此类别。来源