如何在清单文件中添加我的意图标记

时间:2011-07-11 13:05:12

标签: android android-intent android-manifest flags

我们知道有些标志可以使用我们的java代码中的addFlags()方法添加到我们的意图中。有没有什么办法可以在清单文件中添加这些标志,而不是在java代码中编写它。 我需要为清单中的一个活动添加REORDER_TO_FRONT标志。

如何实现这一目标?

4 个答案:

答案 0 :(得分:8)

在清单文件中,您无法添加Intent标志。您需要在Intent中设置您传递给startActivity的标志。这是一个示例:

Intent intent = new Intent(this, ActivityNameToLaunch.class);
intent.addFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT);
startActivity(intent);

答案 1 :(得分:4)

要回答原始问题,因为这是Google搜索中的第一个答案,因此可以在API级别3(2009年推出)中添加android:noHistory="true"到清单文件中的活动定义如下所述:http://developer.android.com/guide/topics/manifest/activity-element.html#nohist

示例:

<activity
   android:name=".MainActivity"
   android:label="@string/app_name"
   android:noHistory="true">
  <intent-filter>
      <action android:name="android.intent.action.MAIN"/>
      <category android:name="android.intent.cataegory.LAUNCHER"/>
  </intent-filter>
</activity>

答案 2 :(得分:3)

我有类似的问题,想要设置标志

Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK

以便将活动始终放在首位。

在这种情况下,解决方案是设置属性

android:launchMode="singleInstance"
清单中的

通常,Android清单中有许多属性用于活动,您可以使用这些属性来获得与旗帜类似的效果。

答案 3 :(得分:0)

您可以在清单的android:launchMode="singleTop"节点中使用<activity>轻松实现此目的,如下所示:

<activity
    android:name=".ui.activities.MainActivity"
    android:launchMode="singleTop">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
</activity>

请注意,@jörg-eisfeld提供的android:launchMode="singleInstance"不建议用于一般用途,正如官方文档中所述:https://developer.android.com/guide/topics/manifest/activity-element.html(请参阅 android:launchMode 部分)