在我正在处理的应用程序中,我看到 DialogFragment 中存在内存泄漏,到目前为止修复它的唯一方法是在 DialogFragment 被销毁时删除所有 View ,这是正常的事情吗?做?我正在使用自定义 ROM,所以不确定这是否与此问题有关。有什么理由不从对话框中删除所有 View 会导致它们泄漏内存?
@Override
public void onDestroyView() {
if (getView() instanceof ViewGroup) {
((ViewGroup)getView()).removeAllViews();
}
super.onDestroyView();
}
最佳答案
这也发生在我的应用程序上,我使用 Leakcanary 发现了泄漏。
当您有一个带有 EditText 的对话框时,就会发生这种情况。当关闭包含 EditText 的 View 时,使用回调实现的光标闪烁未正确处理。并且它是按照这个偶然发生的。
https://code.google.com/p/android/issues/detail?id=188551
编辑
这就是我在每次 dialog.dismiss()
之前所做的事情:
editText.setCursorVisible(false);
dismiss();
希望这对您有所帮助!
关于android - DialogFragment 泄漏内存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36842805/