1. 背景
最近遇到一个这样的问题,Activity A拉起了B(launchmode是singleInstance),然后B拉起了C(标准模式),然后点击返回,我觉得不出意外的话从C返回B,但还是出意外了,现象是从C返回了A。然后我又重新复习和测试了一下singleInstance这种启动模式。
2. 测试与发现
当发生以上这种情况时,使用打印栈信息的方式,将系统内部栈信息打印出来。
adb shell dumpsys activity activities
3. 结论
1. 使用 singleInstance 的Activity独自占用一个栈,其他Activity不能存在那个Task里,每次都会被重用。
2. 如果它启动了一个新的activity,不管新的activity的launch mode 如何,新的activity都将会到别的task里运行。