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

Gia*_*nzi 3 android android-manifest android-intent android-service android-activity

我知道您必须在AndroidManifest.xml文件中声明所有活动服务,以便系统可以访问它们(如官方文档中所述),但如果我有一个服务活动,我想只启动它我的应用程序中的另一个Activity,我是否需要在清单中声明它?即,我总是从我的应用程序的主要活动启动一个辅助活动,直接指向辅助活动的类(没有意图过滤器解析),是否仍然需要在清单中声明辅助活动?如果我不希望我的应用程序之外的任何人能够启动我的辅助活动,该怎么办?如果这是一个愚蠢的问题,我很抱歉,我只想了解当你希望它们只是通过将它们各自的类指向它们时,从清单文件中省略活动和服务是否是一个好的做法(如果可能的话).相同的应用.

Inc*_*App 5

您必须在AndroidManifest.xml文件中声明所有活动和服务(以及BroadcastReceivers等所有其他内容).否则你将无法使用它们.


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

  • 除了你自己的应用程序之外,没有人可以启动"辅助活动",如果它没有"<intent-filter>"或者"android:exported ="false"`. (2认同)