【问题标题】:Always declare Activities and Services in the AndroidManifest file?总是在 AndroidManifest 文件中声明活动和服务?
【发布时间】:2012-05-20 08:54:28
【问题描述】:

我知道你必须在 AndroidManifest.xml 文件中声明你所有的 ActivityServices 以便系统可以访问它们(如官方文档中所述)但如果我有一个 ServiceActivity 我只想由我的应用中的另一个 Activity 启动,我需要在清单中声明吗?即,我总是从我的应用程序的主要活动中启动次要活动,直接指向次要活动的类(没有意图过滤器分辨率),是否仍然需要在清单中声明次要活动?如果我不希望我的应用程序之外的任何人能够启动我的辅助活动怎么办?如果这是一个愚蠢的问题,我很抱歉,我只是想了解当您希望仅通过在同一个应用程序。

【问题讨论】:

    标签: android android-intent android-manifest android-service android-activity


    【解决方案1】:

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


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

    【讨论】:

    • 如果没有<intent-filter> 或有android:exported="false",除了您自己的应用之外,没有人可以启动“辅助活动”。
    • 谢谢,马克。很高兴知道 android:exported="false" 可以完成这项工作。我会用你的评论编辑我的答案
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-08
    • 2011-09-14
    • 1970-01-01
    • 2014-11-01
    • 1970-01-01
    相关资源
    最近更新 更多