public static void copyStreams( InputStream in, OutputStream out, boolean doCloseInput, boolean doCloseOutput, final ProgressUpdateListener progress) throws IOException { byte[] buffer = new byte[2048]; int count = 0; int total = 0; while ((count = in.read(buffer)) != -1) { if (progress.isCancelled()) break; out.write(buffer, 0, count); total += count; if (progress != null) { final int t = total; OpenExplorer.getHandler() .post( new Runnable() { public void run() { progress.onProgressUpdate(t); } }); } } if (doCloseInput) try { if (in != null) in.close(); } catch (Exception e) { } if (doCloseOutput) try { if (out != null) out.close(); } catch (Exception e) { } }
public static void post(Runnable r) { OpenExplorer.post(r); }