android.la base de données.CursorWindowAllocationException lors du déplacement d'un Curseur
Je suis à l'aide d'une base de données SQLite et je reçois régulièrement des erreurs d'exécution, je ne peux pas trouver l'origine de l'. Après une requête, j'utilise moveToFirst
au point sur le premier enregistrement récupérés et parfois, cela déclenche une android.database.CursorWindowAllocationException
exception. Ajouté à cette exception est la phrase suivante : "le Curseur de la fenêtre de l'allocation de 2 048 ko échoué.# les Curseurs ouverts=736 (#curseurs opendby ce proc=736)".
Dans l'Android de la documentation, je n'ai pas trouvé quoi que ce soit lié à cette exception encore. Personne ne sait la cause, et un moyen de l'éviter?
montrez votre journal de chat
OriginalL'auteur Zelig63 | 2014-01-19
Vous devez vous connecter pour publier un commentaire.
Cette erreur est presque toujours due à la non fermeture d'un curseur quand il est terminé. Chaque fois que vous ouvrez un curseur, la mémoire est nécessaire de mapper les données curseur représente et que la mémoire ne peut pas être libéré jusqu'à ce que le curseur est fermé. Il y a une limite à la quantité de mémoire disponible pour cette fin si les curseurs ne sont pas fermées et une application continue d'en ouvrir de nouveaux, cette erreur est susceptible de se produire à un certain point.
Je vous recommande d'examiner votre code pour vous assurer que tous les curseurs créés sont en cours de fermeture à un certain point. Prenez également le soin avec tout le code qui ouvre un curseur à l'intérieur d'une boucle de votre message d'erreur dit "les Curseurs ouverts=736' qui suggère beaucoup de curseur activité au sein d'une boucle en quelque sorte.
Cela m'arrive aussi, mais il lit
Open Cursors=2
, et je n'requête pour un nouveau curseur lorsque l'ancien rapports faux deisClosed()
... ce qui est bizarre alors.Le même problème m'arrive et j'ai pu voir
Open Cursors =1
. Tous les conseils de quelqu'un?Génial explication.
Peut-être une sorte de
OutOfMemoryError
?OriginalL'auteur NigelK