I'm trying to download a large .zip file from a web server but I have a weird behaviour, the description is:

  • I'm executing the code in the device emulator, API level 3 (version 1.5) with an SD card of 512MB. I start the device with "Wipe data user"
  • The length of the size from conexion.getContentLength() is 7012725
  • The server address is localhost (10.0.2.2), but I've tried with an external server and the behaviour is the same. I've double checked that I can download the file through a web browser.
  • I have these permisions in the manifest file:

-

<uses-permission android:name="android.permission.INTERNET"></uses-permission>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"></uses-permission>

The error:

  • It starts downloading the file, I can see the text 10, 20, 30, 40, 50 and then it stops at 60.
  • After a while, the emulator reboots itself.

Workarounds:

  • This issue in stackoverflow is working in the device, not in my case.
  • About this wifi lock issue what I've done is add this permission "android.permission.WAKE_LOCK" and then this piece of code, but with exactly the same behaviour:

    WifiManager.WifiLock wifilock; WifiManager manager = (WifiManager) getSystemService(Context.WIFI_SERVICE); wifilock = manager.createWifiLock("wifilock"); wifilock.acquire(); ... wifilock.release();

Here is the code, that it's being executing in a separate thread:

private void downloadData(){
    try{
        Log.v(TAG, "downloading data");

        URL url  = new URL("http://10.0.2.2/1.zip");
        URLConnection connection = url.openConnection();
        connection.connect();

Edit
Report