我们知道有些标志可以使用我们的java代码中的addFlags()方法添加到我们的意图中。有没有什么办法可以在清单文件中添加这些标志,而不是在java代码中编写它。 我需要为清单中的一个活动添加REORDER_TO_FRONT标志。
如何实现这一目标?
答案 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 部分)