2012-08-08 21 views
17

W/CursorWindow (15677): La ventana está llena: asignación solicitada 2195889 bytes, el espacio libre 2096720 bytes, tamaño de la ventana 2097152 bytesAndroid: El cursor de la ventana está llena

Sé que hay aplicación disponible de memoria :

D/dalvikvm (15677): GC_FOR_ALLOC liberado 9K, 30% libre 17050K/24291K, se detuvo 45ms

Por lo que su puramente a hacer con la ventana del tamaño del cursor, al leer blob en byte[].

Im utilizando el método incorporado para leer blobs de un cursor.

try 
    { 
     c = rdb.query("Photos", new String[]{"photo"}, "id = ?", new String[]{""+photoID}, null, null, null); 
     if(c.moveToFirst()) 
     { 
      byte[] tArray = c.getBlob(c.getColumnIndex("photo")); // THIS LINE ERRORS 
     }    
    }catch(Exception e) 
    { 
     e.printStackTrace(); 
    } 
    c.close(); 

    return tArray; 

¿Hay alguna forma de evitar esto? El tamaño de la ventana parece estar limitado a 2097152 bytes.

Respuesta

15

Parece que la mejor manera de evitar esto es almacenar la foto en la tarjeta SD y guardar el URI en la base de datos.

Si bien quería evitar esto, no es tan malo, y es mucho más estable.

Cuestiones relacionadas