【发布时间】:2014-04-09 19:43:41
【问题描述】:
我试图在我复制文件的过程中显示一个进度条(使用 shell 命令)。这是我的代码:
copyProgress = new ProgressDialog(Activ.this);
copyProgress.setMessage("Copying");
copyProgress.show();
Process process1 = Runtime.getRuntime().exec(new String[] {"cp /sdcard/file /system"});
Process process2 = Runtime.getRuntime().exec(new String[] {"cp /sdcard/file2 /system"});
.......
copyProgress.dismiss();
我有多个不同的进程需要执行,所以我怎样才能让一个进度对话框在开始时出现并在最后一个文件成功完成复制时被关闭。我尝试在procccess1之前显示对话框并在最后一个进程之后关闭,但这不起作用。谢谢。
显然我需要将它包装在一个线程中。谁能告诉我我会怎么做?
【问题讨论】:
-
请显示您尝试实现此的代码
-
你能说明你是如何尝试出现对话框的吗?
-
我添加了我的进度对话框代码。问题是它根本没有出现。
-
在 Java 中执行复制(在后台线程中,或者如果预计会很长,甚至服务中的一个线程)。这方面的例子很多。由于这样的副本将在中等大小的块中完成,这也为您提供了一种衡量文件内以及跨文件进度的现成方法。然后,您只需弄清楚如何让后台复制操作定期通知 UI 其进度。
-
@ChrisStratton 如果我以典型的 Java 方式执行此操作,那么当我将文件复制到 /system 时它仍然可以工作吗?我已经使用 shell 命令完成了它,因为我在命令之前调用了“su”,以便我获得写入 /system 的权限。
标签: java android shell progressdialog