error de apertura: EBUSY (dispositivo o recurso ocupado)

Tengo un error extraño en mi aplicación.

En mi aplicación es posible descargar un archivo zip, leer el contenido tal como es y también borrarlo. No importa qué es exactamente.

Problema: Solo en el Motorola Xoom (versión 4.0.4) puedo descargar el archivo, descomprimirlo, puedo leer los datos y puedo eliminar todo. Pero si intento descargar el archivo nuevamente y mientras lo descomprime y copio los archivos en la tarjeta SD, se bloquea con el error EBUSY (dispositivo o recurso ocupado).

¿Por qué funciona solo la primera vez?¿Qué significa ese error?¿Por qué me sale este error solo en el Xoom?

No puedo encontrar ninguna solución para eso. En todos los demás dispositivos funciona bien, no hay errores o problemas.

LogCat:

07-18 12:27:46.774: E/PrepareMagTask(10057): IOException
07-18 12:27:46.774: E/PrepareMagTask(10057): java.io.FileNotFoundException: /mnt/sdcard/Android/data/com.xxxxxx.android/files/content/23760/emag.db: open failed: EBUSY (Device or resource busy)
07-18 12:27:46.774: E/PrepareMagTask(10057):    at libcore.io.IoBridge.open(IoBridge.java:406)
07-18 12:27:46.774: E/PrepareMagTask(10057):    at java.io.FileOutputStream.<init>(FileOutputStream.java:88)
07-18 12:27:46.774: E/PrepareMagTask(10057):    at java.io.FileOutputStream.<init>(FileOutputStream.java:73)
07-18 12:27:46.774: E/PrepareMagTask(10057):    at com.xxxxx.android.util.io.ZipHelper.uncompressEntry(ZipHelper.java:35)
07-18 12:27:46.774: E/PrepareMagTask(10057):    at com.xxxxx.android.task.PrepareMagTask.doInBackground(PrepareMagTask.java:271)
07-18 12:27:46.774: E/PrepareMagTask(10057):    at com.xxxxx.android.task.PrepareMagTask.doInBackground(PrepareMagTask.java:1)
07-18 12:27:46.774: E/PrepareMagTask(10057):    at android.os.AsyncTask$2.call(AsyncTask.java:264)
07-18 12:27:46.774: E/PrepareMagTask(10057):    at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:305)
07-18 12:27:46.774: E/PrepareMagTask(10057):    at java.util.concurrent.FutureTask.run(FutureTask.java:137)
07-18 12:27:46.774: E/PrepareMagTask(10057):    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1076)
07-18 12:27:46.774: E/PrepareMagTask(10057):    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:569)
07-18 12:27:46.774: E/PrepareMagTask(10057):    at java.lang.Thread.run(Thread.java:856)
07-18 12:27:46.774: E/PrepareMagTask(10057): Caused by: libcore.io.ErrnoException: open failed: EBUSY (Device or resource busy)
07-18 12:27:46.774: E/PrepareMagTask(10057):    at libcore.io.Posix.open(Native Method)
07-18 12:27:46.774: E/PrepareMagTask(10057):    at libcore.io.BlockGuardOs.open(BlockGuardOs.java:110)
07-18 12:27:46.774: E/PrepareMagTask(10057):    at libcore.io.IoBridge.open(IoBridge.java:390)
07-18 12:27:46.774: E/PrepareMagTask(10057):    ... 11 more

Se estrella en la línea 35 en mi clase ZipHelper:

FileHelper.copy(zipFile.getInputStream(entry), new FileOutputStream(outputFile), modify);

getInputStream (entrada) ... y realmente no sé por qué?

¿Hay un método para esperar el dispositivo o el recurso cuando está ocupado? Esto sucede cada vez que intento descomprimir el archivo, la aplicación lo intenta 5 veces (Descarga -> Descomprimir) y se bloquea cada vez.

EDITAR: Nos enteramos, no es sólo el Xoom. También tenemos el error con el Asus Transformer con la versión 4.0.4.

Respuestas a la pregunta(7)

Su respuesta a la pregunta