具有singleTop启动模式的startActivityForResult在Android 9上无法正常运行

时间:2019-03-14 10:23:11

标签: android android-fragments android-activity kotlin android-fragmentactivity

我有一个“活动”和一个通过jetpack navigation解决的片段。

我的一项活动在AndroidManifest.xml文件中将launchMode设置为singleTop

当我在片段中使用startActivity方法时,如果调用者Task的顶部堆栈中已经存在具有相同类型的Activity实例,则不会按预期工作,而不会创建任何新的Activity。

但是,如果使用startActivityForResult,则新的Activity实例将继续创建,即使它已经位于后堆栈顶部。

我在最新的Android 9版本上遇到此问题。我已在旧版Android(4.1)和singleTop启动模式下按预期方式测试了代码。

如果我使用以下代码以编程方式设置启动模式,那会很有趣:

val intent = Intent(context, T::class.java)
intent.flags = Intent.FLAG_ACTIVITY_SINGLE_TOP or Intent.FLAG_ACTIVITY_CLEAR_TOP

singleTop启动模式和startActivityForResult开始在Android 9上正常运行,没有任何问题。

然后为什么它不能在AndroidManifest.xml中使用?我错过了什么?

0 个答案:

没有答案