是否始终在AndroidManifest文件中声明活动和服务?

是否始终在AndroidManifest文件中声明活动和服务?,android,android-intent,android-manifest,android-service,android-activity,Android,Android Intent,Android Manifest,Android Service,Android Activity,我知道你必须在AndroidManifest.xml文件中声明你的所有活动和服务,以便系统可以访问它们(如官方文档中所述),但是如果我有一个服务或活动,我只想由我的应用程序中的另一个活动启动,我需要在清单中声明它吗?也就是说,我总是从我的应用程序的主活动启动一个辅助活动,该活动直接指向辅助活动的类(无意图筛选器解析),是否仍然需要在清单中声明辅助活动?如果我不希望我的应用程序之外的任何人能够启动我的第二个活动呢?如果这是一个愚蠢的问题,我很抱歉,我只是想了解,如果您希望仅通过指向同一应用程序中各

我知道你必须在AndroidManifest.xml文件中声明你的所有活动和服务,以便系统可以访问它们(如官方文档中所述),但是如果我有一个服务或活动,我只想由我的应用程序中的另一个活动启动,我需要在清单中声明它吗?也就是说,我总是从我的应用程序的主活动启动一个辅助活动,该活动直接指向辅助活动的类(无意图筛选器解析),是否仍然需要在清单中声明辅助活动?如果我不希望我的应用程序之外的任何人能够启动我的第二个活动呢?如果这是一个愚蠢的问题,我很抱歉,我只是想了解,如果您希望仅通过指向同一应用程序中各自的类来启动活动和服务,那么从清单文件中省略这些活动和服务是否是一种好的做法(如果可能)。

您必须声明所有活动和服务(以及其他所有内容,如BroadcastReceivers)中的文件。 否则,您将无法使用它们



编辑:根据Commonware评论,将android:exported=“false”添加到AndroidManifest.xml的活动声明将阻止您的辅助活动在应用程序之外启动。

如果没有
android:exported=“false”,只有您自己的应用程序才能启动“辅助活动”
。谢谢,马克。很高兴知道安卓:exported=“false”可以完成这项工作。我会用你的评论编辑我的答案