Android SpannableString内存泄漏,具体取决于我将可点击span放置在何处
所以 我有以下代码(Android SpannableString内存泄漏,具体取决于我将可点击span放置在何处,android,memory,memory-leaks,spannablestring,Android,Memory,Memory Leaks,Spannablestring,所以 我有以下代码(onStart): 泄漏父级-活动(这些行位于中) 如果我只更改数字,则: ss.setSpan(clickableSpanTermsOfUse, 49, 63, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); 漏洞消失了 可点击span使用的术语(内存泄漏与正常的可点击span相同): 我尝试了很多,使用SpannableStringBuilder而不是SpannableString,将生命周期的其他地方挂接到中,手动将所有值设置为null,唯一不同
onStart
):
泄漏父级-活动
(这些行位于中)
如果我只更改数字,则:
ss.setSpan(clickableSpanTermsOfUse, 49, 63, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
漏洞消失了
可点击span使用的术语
(内存泄漏
与正常的可点击span
相同):
我尝试了很多,使用SpannableStringBuilder
而不是SpannableString
,将生命周期的其他地方挂接到中,手动将所有值设置为null
,唯一不同的是,我将可点击span
放在哪里
这里发生了什么,我怎样才能消除内存泄漏
ss.setSpan(clickableSpanTermsOfUse, 49, 63, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
clickableSpanTermsOfUse = new NoRefCopySpan() {
@Override
public void onClick(View textView) {
startActivity(new Intent(ChooseLoginRegistrationActivity.this, PrivacyStatement.class));//, TermsOfUse.class));
}
@Override
public void updateDrawState(TextPaint ds) {
super.updateDrawState(ds);
ds.setUnderlineText(false);
}
};
public class NoRefCopySpan extends ClickableSpan implements NoCopySpan {
@Override
public void onClick(@NonNull View widget) { }
@Override
public void updateDrawState(TextPaint ds) {
super.updateDrawState(ds);
}
}