android - DialogFragment 泄漏内存

标签 android memory-leaks android-dialogfragment

在我正在处理的应用程序中,我看到 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/

相关文章:

java - Android 中的 DialogFragment 错误

android - 无法为不是由该项目构建的目标指定链接库

android - 在 Android 中将 PHP echo 读入字符串

android - 无法更新到 com.google.gms :google-services:4. 2.0

c++ - 这会导致 C++ 中的内存泄漏吗?

android - 如何在android中创建自定义对话框?

java - 如何将数组复制到phonegap中的文件中?

c++ - 我怎么知道我是否需要删除 C++ 中的某些内容?

swift - DateFormatter 中的内存泄漏

android - 处理 DialogFragment 返回行为的最佳方式?