Skip to content

Conversation

@chiemy
Copy link

@chiemy chiemy commented Dec 8, 2017

1.Map key 问题见 #115
2.弱引用使用方式有问题

Desc:  Use toString as key
Desc:
@merlin720
Copy link

当activity嵌套多个fragment,且打开两个相同的activity时,返回第一个activity切换fragment异常 #148
启动相同的activity的时候别destroy ImmersionBar就可以了

@nanhuaqq
Copy link

这个问题不是弱引用问题。 是因为activity的destroy方法并不知道什么时候被系统调用,而ImmersionBar中存储的相关变量是静态static的,这样就会导致时序问题--例如,当我打开finish 当前activity的时候,然后马上打开该activity(该activity有多个fragment页面),这时候前面activity destroy,调用了immersionbar的destroy方法,remove了map中的参数,然后切换到另一个fragment页面,该fragment初始化immersionbar的时候就会报这个异常,从而程序崩溃。 业务中打开同一个activity的场景还是蛮多的,如果不destroy,就有可能引起内存泄漏。 所以这个bug并不是必现的, 但是确实是存在的 而且不是弱引用问题。 问题在于ImmersionBar中几个参数是static的,是多个对象共享,这才是问题的根源。

@chiemy
Copy link
Author

chiemy commented Aug 30, 2018

@nanhuaqq 请先审题,这是两个独立的问题,并不相关。没说第二个问题导致第一问题。
关于弱引用, #98 已经说的很清楚了,既然强引用了,弱引用多此一举。

@gyf-dev gyf-dev closed this Nov 9, 2018
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants