Android:调用getExternalFilesDir(null)时的ANR

时间:2016-04-21 12:17:51

标签: android android-activity android-anr-dialog

最近,当我从我的活动代码中调用getExternalFilesDir(null)时,我开始收到ANR错误。这段代码工作得比较早,但现在,也许在更新gradle构建工具之后,就会出现这样的问题。清理项目并重建没有帮助。有没有人也遇到这个问题?提前谢谢。

代码示例。该应用程序冻结了第一行File folder = getExternalFilesDir(null);

上的ANR对话框
    // check if downloaded files take less memory than EPISODES_SIZE_WARNING_LIMIT_MB
private void checkFolderSize() {
    File folder = getExternalFilesDir(null);
    if (folder != null) {
        long length = 0;
        for (File file : folder.listFiles())
            if (file.isFile())
                length += file.length();
        double sizeMb = ((double)length) / 1024 / 1024;
        if (sizeMb > EPISODES_SIZE_WARNING_LIMIT_MB) {
            new AlertDialog.Builder(this)
                    .setTitle(R.string.dialog_warning)
                    .setMessage(getString(R.string.warning_used_memory, EPISODES_SIZE_WARNING_LIMIT_MB))
                    .setNeutralButton(R.string.dialog_ok, null)
                    .show();
        }
    }
}

1 个答案:

答案 0 :(得分:1)

那是设备问题。重新启动后,它可以工作。