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


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

怎么做到这一点?


9443
2017-07-11 13:05


起源



答案:


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

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

7
2017-07-14 11:12



嗨Richie,是的,我知道这件事,但问题是我没有明确地从另一个活动发起这个活动。在我的情况下,要启动的Activity是主/启动器,当用户通过按下后退按钮关闭其他活动并最终进入此屏幕(也是启动屏幕)时,它将启动 - Ankit


答案:


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

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

7
2017-07-14 11:12



嗨Richie,是的,我知道这件事,但问题是我没有明确地从另一个活动发起这个活动。在我的情况下,要启动的Activity是主/启动器,当用户通过按下后退按钮关闭其他活动并最终进入此屏幕(也是启动屏幕)时,它将启动 - Ankit


要回答原始问题,因为这似乎是谷歌搜索中的第一个答案,所以可以完成,因为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>

3
2017-10-03 22:38





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

Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK

为了使活动始终处于领先地位。

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

android:launchMode="singleInstance"

在清单中。

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


3
2017-08-12 05:24



优秀的提示,谢谢!可能还想检查<activity>元素的文档,而不仅仅是“玩弄”: developer.android.com/guide/topics/manifest/... - Robin


使用时可以轻松实现此目的 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>

注意 android:launchMode="singleInstance" 正如@jörg-eisfeld给出的那样,不建议用于一般用途,因为它在官方文档中有说明: https://developer.android.com/guide/topics/manifest/activity-element.html (见 机器人:launchMode 部分)


0
2017-09-26 23:31