尝试从url下载zip文件时停止活动

时间:2014-12-30 11:52:47

标签: android

我从我的Android应用程序下载zip文件。单击“下载”按钮时,活动将停止。以下是下载zip文件的代码。

下载代码:

public void myDownload(View v) {


            URL url;
            try {
                url = new URL("https://github.com/jquery/jquery/archive/master.zip");
                try {
                    InputStream in = url.openStream();
                    FileOutputStream fos = new FileOutputStream(new File("Master.zip"));
                    System.out.println("Reading the file.");
                    int length = -1;
                    byte[] buffer = new byte[1024];// buffer for portion of data from
                    // connection
                    while ((length = in.read(buffer)) > -1) {
                        fos.write(buffer, 0, length);
                    }
                    fos.close();
                    in.close();
                    System.out.println("File Downloaded");

                } catch (IOException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
            } catch (MalformedURLException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }

}

感谢您的帮助!

2 个答案:

答案 0 :(得分:0)

@ usd123:你得到某种例外吗?根据你的代码,事情似乎很好。唯一的问题我猜你可能会连接到主UI线程上的特定URL,这导致ANR(活动无响应)。根据Android文档,不应在主UI线程上执行网络读/写任务。它们需要通过异步任务或服务完成。 请阅读 http://developer.android.com/reference/android/os/StrictMode.html 希望这有帮助!

答案 1 :(得分:0)

您不应该在主线程中调用互联网/网络电话。尝试AsyncTask将其从主线程运行并使用Handlers更新UI。