android– 从SD卡中删除文件夹时的“旋转轮”进度对话框

android– 从SD卡中删除文件夹时的“旋转轮”进度对话框,第1张

概述我想用旋转轮显示简单的进度对话框,同时从SD卡中删除文件夹.我有一段代码:ProgressDialogdialog=ProgressDialog.show(this,"","Pleasewaitforfewseconds...",true);privatevoiddeleteCache(){Filef=newFile(Environment.getExternalStora

我想用旋转轮显示简单的进度对话框,同时从SD卡中删除文件夹.我有一段代码:

  ProgressDialog dialog = ProgressDialog.show(this, "",            "Please wait for few seconds...", true);private voID deleteCache() {    file f = new file(Environment.getExternalStorageDirectory()            .getabsolutefile() + Constants.data_dir);    deleteDirectory(f);    dialog.dismiss();} private voID deleteDirectory(file path) {        if (path.exists()) {            file[] files = path.Listfiles();            for (int i = 0; i < files.length; i++) {                if (files[i].isDirectory()) {                    deleteDirectory(files[i]);                } else {                    files[i].delete();                }            }        }        return (path.delete());    }

应该在deleteDirectory(f)之前显示对话框;结束后将其解散.但是我没有看到任何对话框,但是文件夹被删除了.

解决方法:

像这样修改你的代码,

 ProgressDialog dialog = ProgressDialog.show(this, "",        "Please wait for few seconds...", true);        new Thread(new Runnable() {        public voID run() {              file f = new file(Environment.getExternalStorageDirectory()        .getabsolutefile() + Constants.data_dir);deleteDirectory(f);   private voID deleteDirectory(file path) {    if (path.exists()) {        file[] files = path.Listfiles();        for (int i = 0; i < files.length; i++) {            if (files[i].isDirectory()) {                deleteDirectory(files[i]);            } else {                files[i].delete();            }        }    }    return (path.delete());}            handler.sendEmptyMessage(0);        }    }).start();    handler = new Handler() {        @OverrIDe        public voID handleMessage(Message msg) {            try {                progressDialog.dismiss();            } catch (IllegalArgumentException e) {                e.printstacktrace();            }        }    };

我不确定为什么会这样.由于您的代码在单个线程中执行所有 *** 作,因此progressdialog不会快速显示.因此,尝试在单独的线程中处理其他事情来处理此问题.

总结

以上是内存溢出为你收集整理的android – 从SD卡中删除文件夹时的“旋转轮”进度对话框全部内容,希望文章能够帮你解决android – 从SD卡中删除文件夹时的“旋转轮”进度对话框所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/1099462.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-28
下一篇 2022-05-28

发表评论

登录后才能评论

评论列表(0条)

保存