Android: 调用 getExternalFilesDir(null) 时出现 ANR
Android: ANR when call getExternalFilesDir(null)
最近,当从我的 activity 代码调用 getExternalFilesDir(null)
时,我开始遇到 ANR 错误。这段代码之前可以工作,但现在,可能在更新 gradle 构建工具之后,出现了这样的问题。清理项目并重建没有帮助。有人也遇到过这个问题吗?提前致谢。
代码示例。应用程序冻结并在第一行显示 ANR 对话框 File folder = getExternalFilesDir(null);
// 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();
}
}
}
那是设备问题。重启后就可以了。
最近,当从我的 activity 代码调用 getExternalFilesDir(null)
时,我开始遇到 ANR 错误。这段代码之前可以工作,但现在,可能在更新 gradle 构建工具之后,出现了这样的问题。清理项目并重建没有帮助。有人也遇到过这个问题吗?提前致谢。
代码示例。应用程序冻结并在第一行显示 ANR 对话框 File folder = getExternalFilesDir(null);
// 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();
}
}
}
那是设备问题。重启后就可以了。