Android 我必须声明清单文件中的每个活动吗?
我想创建一个活动,但不必在清单文件中声明它。这可能吗?在我所看到的任何地方,似乎每个活动都必须在清单中声明,但我注意到一些活动,例如内置的ChooseSactivity,没有在我的清单文件中声明 我想创建一个活动,但不必在清单文件中声明它。这可能吗 不,对不起 我注意到一些活动,例如内置的ChooseSactivity,没有在清单文件中声明Android 我必须声明清单文件中的每个活动吗?,android,android-activity,android-manifest,Android,Android Activity,Android Manifest,我想创建一个活动,但不必在清单文件中声明它。这可能吗?在我所看到的任何地方,似乎每个活动都必须在清单中声明,但我注意到一些活动,例如内置的ChooseSactivity,没有在我的清单文件中声明 我想创建一个活动,但不必在清单文件中声明它。这可能吗 不,对不起 我注意到一些活动,例如内置的ChooseSactivity,没有在清单文件中声明 该活动不是应用程序的一部分。它是核心操作系统的一部分。简短回答:是的,应用程序中的每个活动都必须在清单中声明。如Android文档所述,清单的目的(除其他外
该活动不是应用程序的一部分。它是核心操作系统的一部分。简短回答:是的,应用程序中的每个活动都必须在清单中声明。如Android文档所述,清单的目的(除其他外)是: 它描述了应用程序的组件—应用程序所支持的活动、服务、广播接收器和内容提供商 应用程序由以下部分组成。它命名了实现每个类的类 并发布其功能(例如 他们可以处理的意图消息)。这些声明让Android 系统知道组件是什么以及在什么条件下可以使用 (即将推出。) 因此,必须在清单中定义应用程序中的任何活动类。意图、服务等也是如此,即使这些组件无法从应用程序外部访问
至于ChooseSactivity和您在代码中没有定义的任何其他活动,它们将在另一个清单中有自己的定义。如果出于任何原因,您决定在应用程序之外对现有活动进行子类化,那么您也必须在清单中定义该活动。ChooseActivity在另一个清单文件中声明,并向您的应用程序公开。你的目标是什么,不把它放在清单中,这可能会帮助我回答你的问题。Xamarin.Android通过使用属性(就像Java中的注释)自动完成这项工作。也许有人也可以用Java创建一个工具来实现这一点。从一个新手到Android,从设计的角度来看,这是毫无意义的!您不能定义不在清单中的活动,也不能拥有不在代码中的清单条目,那么为什么编译器不能为您处理这些呢?将清单中的异常保留为默认配置,并让编译器“填充”其余部分!为什么要我们这么做。。。那是除非我的理解是错误的,我遗漏了一些东西,在这种情况下,请分享,以便我可以学习,因为现在的方式,这似乎只是乏味和不必要的文书工作!注意,我显然指的是我在我的应用程序中定义的活动,而不是我的应用程序中可用的活动(即系统提供的活动等)。如果您定义了类,您负责将其添加到清单中,清单仅适用于您定义的活动,而不是外部活动,因此,对于那些不需要显式配置的编译器,为什么不能推断出这一点?见鬼,添加一个“隐式活动”来定义那些未指定的默认值。你的论点可能有一些优点。然而,考虑到1)它们有一个现有的工具链和OS版本来支持2)在您导入的项目或库中可能有活动/服务/广播接收器/等,而不希望应用程序启动/使用(例如,基础活动或AppCubActuvior)。3)我不确定这些组件的默认配置有多有用,因为每个组件通常都是定制的,带有标题、图标、意图过滤器、主题、启动模式、元数据等。4)可能还有其他参数或约束。我知道这是一个旧答案,从2018年开始,活动分为
活动
和活动
。是否仍需要在清单中声明这两种类型的活动类,从而使当前正确答案仍然适用于此情况并有效?@tom_mai78101AppCompatActivity
extendsActivity
,因此仍需要在清单中注册才能启动它