TextView 富文本學(xué)習(xí)六 - 設(shè)置了ClickableSpan導(dǎo)致內(nèi)存泄漏

1 設(shè)置ClickableSpan導(dǎo)致內(nèi)存泄漏

 spannable.setSpan(new ClickableSpan() {
                       @Override
                       public void onClick(View widget) {
                          
                       }

                       public void updateDrawState(TextPaint ds) {
                           ds.setColor(mContext.getResources().getColor();
                           ds.setUnderlineText(false);
                       }
                   }, start, start + tagNameMatch.length(), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);

導(dǎo)致內(nèi)存泄漏的原因:
https://stackoverflow.com/questions/28539216/android-textview-leaks-with-setmovementmethod

Using ClickableSpan may still cause leaks even on versions higher than KitKat. If you look into implementation of the ClickableSpan you will notice that it doesn't extend NoCopySpan, so it leaks in onSaveInstanceState() like described in @DmitryKorobeinikov and @ChrisHorner answers. So the solution would be to create a custom class that extends ClickableSpan and NoCopySpan.

解決辦法也來自上面的網(wǎng)址:

public static class NoRefCopySpan  extends ClickableSpan implements NoCopySpan{

        @Override
        public void onClick(@NonNull View widget) {

        }

        @Override
        public void updateDrawState(TextPaint ds) {
           super.updateDrawState(ds);
        }

    }

使用

         spannable.setSpan(new NoRefCopySpan() {
                  @Override
                  public void onClick(View widget) { 
                  }
    
                 public void updateDrawState(TextPaint ds) {
                             
                }
                }, start, start + tagNameMatch.length(), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • rljs by sennchi Timeline of History Part One The Cognitiv...
    sennchi閱讀 7,854評論 0 10
  • The Inner Game of Tennis W Timothy Gallwey Jonathan Cape ...
    網(wǎng)事_79a3閱讀 12,919評論 3 20
  • 頭頂浮動著充盈的空氣 我卻不能呼吸 魚兒披著鱗片 在眼前游弋 伸手觸摸 卻像地獄到天堂的距離 錯雜的水草纏繞我的腳...
    肖玉樓閱讀 681評論 0 8
  • 風(fēng)不知跑哪去了 窗外的竹寂寞的了 院里的小池塘也乖了 夜,如白紙般的寂靜 淘氣的春雨非要調(diào)皮調(diào)皮 撥弄撥弄這沉寂 ...
    小胡巴閱讀 547評論 17 35
  • 竹枝詞九首(其二) 唐 劉禹錫 楊柳青青江水平, 聞郎岸上踏歌聲。 東邊日出西邊雨 道是無晴卻有晴。
    水火同源閱讀 466評論 0 13

友情鏈接更多精彩內(nèi)容