2011-06-03 13 views
11

Esta pregunta ha evolucionado un poco desde la inicial, he aquí una breve información:Manejo de almacenamiento de disco completo en Android

Llené el almacenamiento en disco en el emulador y lo tiene absolutamente inútil - la android.process proceso. acore muestra el diálogo "... se ha detenido inesperadamente" en un bucle, por lo que no se puede hacer nada en el sistema. Ni siquiera puedo apagarlo con el botón de encendido de la derecha (ha intentado apagarse durante 10 minutos, el logcat está lleno de excepciones). Genial, es un emulador, me pregunto qué pasaría si fuera mi dispositivo real ...

Quizás alguien pueda explicar las razones de este comportamiento, ¿debería ser así?

Aquí está la pregunta inicial, véase también mis ediciones:

tengo curiosidad por saber manejar una situación aleatoria, como quedarse sin almacenamiento en disco en un dispositivo Android.

Revisé los ejemplos en developer.android.com y veo que ni siquiera se molestan en hacer un manejo de excepciones.

Puedo ver que cuando se trata de clases SQLite, hay un par de excepciones, como SQLiteOutOfMemoryException, pero no puedo encontrar ninguna información sobre cuándo y cómo manejar estos escenarios.

¿Alguien tiene experiencia con:

  • de blindaje de una aplicación para una situación tan tensa
  • formas de probar esto en un emulador
  • retroalimentación de los usuarios frustrados (tal vez oído de cualquier frustración con el ejemplo -apps o incluso aplicaciones principales ...?)

Gracias de antemano por su tiempo chicos.

[Editar]

también me encuentro con esta mordedura en cuestión Android perseguidor:

http://code.google.com/p/android/issues/detail?id=1653

Es una especie de misteriosa .. y parece que es un fantasma desde 2008.

[Edit2]

Alrite, con el asesoramiento de los comentarios: acabo de hacer una prueba usando:

dd if=/dev/urandom of=file 

con parámetros B y recuento elegido para el espacio restante,

y llenó la partición/datos.

Me sorprende que Google Maps haya fallado en SQLiteFullException. En realidad, todas las aplicaciones fallan, incluso el teléfono.

¿Es cierto que nadie maneja esas excepciones? ¿Está bien que esas aplicaciones acaben siendo asesinadas con "..has parado inesperadamente"?

+1

Presumiblemente puede llenar la partición de datos y la tarjeta SD desde una aplicación, o si por alguna razón no, en el emulador desde la línea de comando como raíz (donde también puede hacer que la tarjeta SD sea convenientemente pequeña). –

+0

gracias por esas pistas, aunque estoy esperando respuestas sobre la parte de manejo. de todos modos, esto es muy apreciado :) – chemical

+0

Para mí, la respuesta sería "comprueba cuánto espacio en disco tiene tu partición antes de escribir": si es demasiado poco, informa al usuario. Una pregunta/respuesta con algo más de información sobre cómo solicitarla: http://stackoverflow.com/questions/4595334/android-get-free-space-on-internal-memory – Smith3

Respuesta

-1

Este es el error, "el almacenamiento del teléfono está lleno! Eliminar algunos archivos para liberar espacio." Tengo al menos 7 gigas de espacio libre. La memoria interna de su teléfono está llena. No es tu tarjeta de memoria. Están completamente separados.

Pruebe desinstalar algunas aplicaciones que ya no necesita. Y también intente borrar el caché en algunas de sus aplicaciones.

0

La forma de manejar esto es mediante el manejo de errores en todas las operaciones de archivos para que la aplicación no solo se cuelgue, y hago una estadística de archivo (https://stackoverflow.com/a/5083482/1317564) en el directorio utilizado por el usuario para asegurar que haya suficiente espacio libre . Si no, les muestro un gran mensaje de error. ;) Por lo general, el teléfono también se queja bastante, por lo que deberían darse cuenta del problema tarde o temprano.

Cuestiones relacionadas