我们有活动和碎片泄漏,并将原因追溯到TextViews上看起来未被移除的ChangeWatchers.
场景:活动A启动活动B. B在其布局中有一个textPassword EditText字段.活动B结束.
HPROF转储显示活动B仍然有一个实例.其gcroot路径如下:
test.maa.LoginActivity
'- mContext android.widget.EditText
'- this$0 android.widget.TextView$ChangeWatcher
'- [1] java.lang.Object[13]
'- mSpans android.text.SpannableStringBuilder
'- mSource android.text.method.PasswordTransformationMethod$PasswordCharSequence
'- mText android.text.MeasuredText
'- mMeasured android.text.StaticLayout
'- sStaticLayout class android.text.DynamicLayout
Run Code Online (Sandbox Code Playgroud)
如果您将Linkify.addLinks链接到TextView,也会发生这种情况.
有没有办法清理活动B?
据我所知,这似乎是 Android 中与 TextView ChangeWatcher 和 Linkify 或 Html.fromHtml 可跨越字符串相关的错误。我能够通过调用setText(null)我的活动的 onDestroy() 来解决这个问题。可能还有其他可行的解决方法,但我无法找到有关泄漏的任何进一步信息。
| 归档时间: |
|
| 查看次数: |
1338 次 |
| 最近记录: |