【发布时间】:2020-02-01 22:44:01
【问题描述】:
我使用startActivityForResult() 启动一个活动,并希望防止在活动堆栈顶部启动多个实例。所以我希望android:launchMode="singleTop" 能够完成它的工作,但由于某种原因,该标志被忽略了。
经过一些调查,我设法通过在意图中添加FLAG_ACTIVITY_REORDER_TO_FRONT 来仅启动一个实例,但如果有人能解释为什么“singleTop”在这种情况下不起作用,我将不胜感激。代码很简单。
// Activity class
Intent intent = new Intent(this, DetailsActivity.class);
// multiple instances can be launched without this line
intent.setFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT);
startActivityForResult(intent, REQUEST_CODE_DETAILS);
// AndroidManifest.xml
<activity
android:name=".DetailsActivity"
android:launchMode="singleTop"/>
【问题讨论】:
标签: android android-activity launchmode