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);
    }

}