在我的测试中,我使用逻辑启动一个活动
val startIntent = Intent(Intent.ACTION_MAIN).apply {
setClassName(InstrumentationRegistry.getTargetContext().packageName, MyActivity::class.java.name)
flags = Intent.FLAG_ACTIVITY_NEW_TASK
}
InstrumentationRegistry.getInstrumentation().startActivitySync(startIntent)
当我面向 API 27 时,它工作正常,但现在我的目标是 API 28,它失败并出现异常
android.util.AndroidRuntimeException:从 Activity 上下文外部调用 startActivity() 需要 FLAG_ACTIVITY_NEW_TASK 标志。这真的是你想要的吗?
我知道API 28进行了更改以强制使用上述标志,但是我非常清楚地指定了该标志
请尝试以下操作:
addFlags(Intent.FLAG_ACTIVITY_NEW_TASK)