2010-12-27 4 views
2

Je télécharge des fichiers et les enregistre dans SDCard et je veux capturer un événement lorsque la SDCard est pleine. En ce moment, il lance IOException si aucune mémoire n'est laissée sur SDCard. Comment faire la distinction entre l'exception de mémoire complète et les autres exceptions IOExceptions?IOException est lancé lorsque SDCard est plein

Cheers, Prateek

Répondre

0

Si vous connaissez la quantité de données vous écrivez à la carte SD, vous pouvez vérifier s'il y a suffisamment d'espace avant d'essayer d'écrire et ainsi éviter l'exception IOException.

+1

Oui, je sais combien de données je vais écrire. Mais que se passe-t-il si une autre source écrit également sur SDCard en même temps? Disons que les images sont cliquées et écrites sur la carte SD en même temps. –

+0

@Prateek OK, vous pouvez également effectuer la vérification après avoir intercepté l'exception IOException. Mais s'il y a écriture simultanée/suppression de données, vous ne serez jamais sûr à 100%. –

+0

Merci .. Serait-il OK si je compare le detailMessage de IOException qui est "Pas d'espace laissé sur l'appareil" dans le cas de SDCard complète pour identifier de telles situations? Je ne suis pas sûr que ce soit une bonne pratique. –

1

S'il n'y a pas une telle chose comme NoMemoryLeftExeption alors généralement par le message.


Vous pouvez vérifier l'espace après IOException à gauche sur la carte SD ... si plus une petite quantité alors rethrow cette exception que vous pouvez supposer que ce MemoryFullException

+2

Une erreur OutOfMemory est renvoyée lorsque la machine virtuelle est à court de mémoire, cela n'a rien à voir avec le stockage persistant. –

+0

@Dan Cette "plateforme de ressources" était trompeuse pour moi. Merci d'avoir fait remarquer cela. –

+0

Merci les gars !! Mais existe-t-il de toute façon pour identifier un tel scénario? –

-1

Si le message IOException (e.getMessage()) contient le texte suivant

ENOSPC (Pas d'espace sur le périphérique)

vous pouvez être 100% que la carte SD est pleine .

Questions connexes