我有点不太明白为什么OnResultListener会持有旧Activity的引用

来源:3-6 Activity 的 onActivityResult 使用起来非常麻烦,为什么不设计成回调?

慕田峪2868672

2019-09-24

既然旧Activity都被销毁了,他的onActivityResult还会被调用吗?
新Activity被恢复后,回调的不是新Activity的onActivityResult方法吗?
感谢解答

写回答

1回答

慕田峪2868672

提问者

2019-09-24

知道了,茅塞顿开。因为匿名内部类在最开始创建的时候持有了旧Activity的引用。所以当Activity重建的时候恢复数据,就原原本本的把带有旧Activity引用的匿名内部类一起带到了新Activity当中。我们通过Fragment获取新Activity的引用更新下匿名内部类的Activity引用就可以了。

1
2
12313凯皇
不太理解“Activity重建的时候恢复数据,就原原本本的把带有旧Activity引用的匿名内部类一起带到了新Activity当中”这句话,意思是当新Activity创建的时候,匿名内部类中的引用会指向新的Activity么?
2021-07-24
共2条回复

大厂资深面试官 带你破解Android高级面试

改变视野和思维 深度与广度兼备的 Android 进阶面试指导课程

1636 学习 · 222 问题

查看课程