Skip to content

Commit 3fd2911

Browse files
committed
处理 Demo 工程 LeakCanary 报内存泄漏的问题
1 parent 98e30af commit 3fd2911

1 file changed

Lines changed: 17 additions & 4 deletions

File tree

app/src/main/java/com/hjq/window/demo/MainActivity.java

Lines changed: 17 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -104,7 +104,8 @@ public void onClick(View v) {
104104

105105
@Override
106106
public void onWindowCancel(@NonNull EasyWindow<?> easyWindow) {
107-
// 在窗口消失的时候回收资源,避免 LeakCanary 一直报内存泄漏,关于这点框架文档有介绍,详情请看文档
107+
// 如果 EasyWindow 在取消显示后,没有再次使用了,则应该在窗口消失的时候回收资源,
108+
// 避免 LeakCanary 一直报内存泄漏,关于这点框架文档有介绍,详情请看文档
108109
easyWindow.recycle();
109110
}
110111
})
@@ -122,7 +123,8 @@ public void onWindowCancel(@NonNull EasyWindow<?> easyWindow) {
122123

123124
@Override
124125
public void onWindowCancel(@NonNull EasyWindow<?> easyWindow) {
125-
// 在窗口消失的时候回收资源,避免 LeakCanary 一直报内存泄漏,关于这点框架文档有介绍,详情请看文档
126+
// 如果 EasyWindow 在取消显示后,没有再次使用了,则应该在窗口消失的时候回收资源,
127+
// 避免 LeakCanary 一直报内存泄漏,关于这点框架文档有介绍,详情请看文档
126128
easyWindow.recycle();
127129
}
128130
})
@@ -166,7 +168,8 @@ public void onWindowShow(@NonNull EasyWindow<?> easyWindow) {
166168
@Override
167169
public void onWindowCancel(@NonNull EasyWindow<?> easyWindow) {
168170
Snackbar.make(getWindow().getDecorView(), "消失回调", Snackbar.LENGTH_SHORT).show();
169-
// 在窗口消失的时候回收资源,避免 LeakCanary 一直报内存泄漏,关于这点框架文档有介绍,详情请看文档
171+
// 如果 EasyWindow 在取消显示后,没有再次使用了,则应该在窗口消失的时候回收资源,
172+
// 避免 LeakCanary 一直报内存泄漏,关于这点框架文档有介绍,详情请看文档
170173
easyWindow.recycle();
171174
}
172175
})
@@ -377,6 +380,15 @@ public void onDenied(@NonNull List<String> permissions, boolean doNotAskAgain) {
377380
.setWindowDuration(1000)
378381
.setWindowAnim(R.style.ScaleAnimStyle)
379382
.setTextByTextView(android.R.id.message, "就问你溜不溜")
383+
.setOnWindowLifecycleCallback(new OnWindowLifecycleCallback() {
384+
385+
@Override
386+
public void onWindowCancel(@NonNull EasyWindow<?> easyWindow) {
387+
// 如果 EasyWindow 在取消显示后,没有再次使用了,则应该在窗口消失的时候回收资源,
388+
// 避免 LeakCanary 一直报内存泄漏,关于这点框架文档有介绍,详情请看文档
389+
easyWindow.recycle();
390+
}
391+
})
380392
.show();
381393
}
382394
}
@@ -448,7 +460,8 @@ public boolean onLongClick(@NonNull EasyWindow<?> easyWindow, @NonNull ImageView
448460

449461
@Override
450462
public void onWindowCancel(@NonNull EasyWindow<?> easyWindow) {
451-
// 在窗口消失的时候回收资源,避免 LeakCanary 一直报内存泄漏,关于这点框架文档有介绍,详情请看文档
463+
// 如果 EasyWindow 在取消显示后,没有再次使用了,则应该在窗口消失的时候回收资源,
464+
// 避免 LeakCanary 一直报内存泄漏,关于这点框架文档有介绍,详情请看文档
452465
easyWindow.recycle();
453466
}
454467
})

0 commit comments

Comments
 (0)