【问题标题】:Purpose of using CATEGORY_HOME in android manifest?在 android manifest 中使用 CATEGORY_HOME 的目的是什么?
【发布时间】:2013-07-09 15:51:08
【问题描述】:

从 AndroidManifest 中删除以下内容的替代方法是什么:

 <activity           

    android:name="com.apper.main.UserActivity"
    android:label="@string/app_name"        
    android:launchMode="singleTask"
    android:clearTaskOnLaunch="true"
    android:stateNotNeeded="true" >
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.HOME"/>
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
 </activity>

我还发现,去掉上面那行之后,对我的android没有任何影响 应用。这个类别的主要用途是什么,它的替代品是什么。

如果此类别的目的是启动主屏幕,则可以通过以下方式完成:

Intent homeIntent= new Intent(Intent.ACTION_MAIN);
homeIntent.addCategory(Intent.CATEGORY_HOME);
homeIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(homeIntent);

上面的代码将启动主屏幕,但为什么在 android manifest 中有一行? 从这里删除行并不会改变应用程序的目的是什么?

【问题讨论】:

    标签: android android-manifest


    【解决方案1】:

    这个分类的主要用途是什么

    它与ACTION_MAIN 一起识别替换主屏幕。

    有什么替代方法

    没有。要么你有这个类别,要么你没有。

    【讨论】:

    • 所以我们不能有某种硬连线,以便第一个活动已经配置(默认情况下)到某个众所周知的位置。我们的想法是删除那条线并获得这样的替代方案。想法?
    • @SaurabhJain:“所以我们不能有某种硬连线,以便第一个活动已经(默认)配置到某个众所周知的位置” - 我不知道你是什么意思是,对不起。
    • 请检查上述问题的更新。有问题的代码将完成调用主屏幕的工作。那为什么我们在 manifest 中需要那行 &lt;category android:name="android.intent.category.HOME"/&gt; 呢?删除它什么也没做。
    • @SaurabhJain: "删除它什么也没做" -- 引用the documentation: "对于通过类别测试的意图,Intent 对象中的每个类别都必须匹配过滤器中的类别。过滤器可以列出其他类别,但不能省略意图中的任何类别。”因此,如果您在Intent 中有HOME,则HOME 必须在&lt;intent-filter&gt; 中。如果您有相反的证据,欢迎您将完整的源代码发布到可重现的测试用例中。
    • "如果 Intent 中有 HOME,则 HOME 必须在 中" - 如文档中所述,我在 中有 HOME。但我不知道 Intent 中是否有 HOME。要添加什么代码来实现这一点?
    【解决方案2】:

    HOME 类别用于将您的应用程序声明为 Home 启动器。通过将其放入清单中,用户将可以选择在按下主页按钮时打开您的应用程序。

    这通常在创建将在信息亭模式下使用的应用程序时使用。

    我认为没有其他方法可以让应用程序成为主页启动器。

    Documentation

    【讨论】:

    • 所以我们不能有某种硬连线,以便第一个活动已经配置(默认情况下)到某个众所周知的位置。我们的想法是删除那条线并获得这样的替代方案。想法?
    猜你喜欢
    • 2017-08-06
    • 2015-02-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多