Jelajahi Sumber

PDFTool(Android) - 修复CStyleDialogFragment内存泄露问题

liuxiaolong 5 bulan lalu
induk
melakukan
6cbd340bd2

+ 6 - 0
ComPDFKit_Tools/src/main/java/com/compdfkit/tools/common/views/pdfproperties/pdfstyle/CAnnotStyle.java

@@ -895,6 +895,12 @@ public class CAnnotStyle implements Serializable {
         this.styleChangeListenerList.remove(styleChangeListener);
     }
 
+    public void cleanStyleChangeListener(){
+        if (this.styleChangeListenerList != null) {
+            styleChangeListenerList.clear();
+        }
+    }
+
 
     public interface OnAnnotStyleChangeListener {
 

+ 11 - 0
ComPDFKit_Tools/src/main/java/com/compdfkit/tools/common/views/pdfproperties/pdfstyle/CStyleDialogFragment.java

@@ -13,6 +13,7 @@ import android.content.Context;
 import android.content.DialogInterface;
 import android.content.res.Configuration;
 import android.os.Bundle;
+import android.util.Log;
 import android.view.LayoutInflater;
 import android.view.View;
 import android.view.ViewGroup;
@@ -288,4 +289,14 @@ public class CStyleDialogFragment extends BottomSheetDialogFragment implements C
     public void setStyleDialogDismissListener(COnDialogDismissListener styleDialogDismissListener) {
         this.styleDialogDismissListener = styleDialogDismissListener;
     }
+
+    @Override
+    public void onDestroy() {
+        super.onDestroy();
+        changeCallback = null;
+        dialogHeightCallback = null;
+        if (annotStyle != null){
+            annotStyle.cleanStyleChangeListener();
+        }
+    }
 }