-
Notifications
You must be signed in to change notification settings - Fork 1.1k
Closed
Description
- 我已阅读并理解 贡献指南,严格遵循其约定。
错误报告
你做了什么?
保证此时Activity Stack内容为A20->A->A(即singleTask->standard->standard),在栈顶A页面Activity中人为制造一个ANR导致进程死亡重启,此时Activity Stack变成A20->A。
然后退回到A20页面继续系统一个singleTask的Activity,此时调试发现在分配坑位时继续把A20分配给了需要启动的Activity导致无法正确启动该Activity。
由于重启Activity必然不会执行Instrumentation.execStartActivity从而不会执行wrapIntent方法中的dequeueStubActivity方法(记录和分配坑位),而记录坑位信息的变量mStubQueue被清空没有记录重启的Activity所占有的坑位。
你期望的结果是什么?
ANR引起的重启后,能够正确的找对坑位启动Activity,如上面应该分配A21给新的singleTaskActivity。
实际结果是什么?
坑位数组被置空,重启的Activity持有坑位但是没有重新赋值到数组中,导致后续启动Activity坑位分配错误。
Small环境
Compile-time
gradle-small plugin : 1.2.0-alpha5 (project)
small aar : 1.2.0-alpha5 (project)
gradle core : 3.3
android plugin : 2.3.0
OS : Mac OS X 10.12 (x86_64)
Runtime
Device : redmi3
SDK : Android 7.1.2
ABI : arm64-v8a
Metadata
Metadata
Assignees
Labels
No labels