Heartnet46 Posté(e) 29 septembre 2010 Share Posté(e) 29 septembre 2010 Bonjour, J'ai un problème sur mon application, j'aimerais pouvoir gérer le cas ou l'utilisateur unmount la carte sd : j'ai des traitement d'écriture/lecture sur des fichiers de carte sd qui peuvent être relativement long, et il faudrait que je ferme ces fichiers quand l'utilisateur veut unmount la carte sd. J'utilise donc un broadcastreceiver pour recevoir des notification de changement sur la carte sd, il fonctionne, je reçoit bien les notification EJECT et UNMOUNT en temps normal. Sauf que dans le cas ou un fichier de la carte sd est en cours d'utilisation, android kill le processus qui utilise ces fichiers avant d'envoyer les notifications et unmout la carte sd. Et évidemment dans ce cas la, je ne peux pas recevoir ces notifications, puisque mon processus est mort. C'est un peu le serpent qui se mort la queue :mad: Quelqu'un aurait une idée ? Merci Lien vers le commentaire Partager sur d’autres sites More sharing options...
Heartnet46 Posté(e) 29 septembre 2010 Auteur Share Posté(e) 29 septembre 2010 Je précise qu'il n'y a pas ce problème en 2.1 : l'intent MEDIA_EJECT est envoyé AVANT de kill le processus, et dans ce cas on peut fermer les fichier ouvert sur la carte sd avant que android ferme l'application comme un barbare :o Alors pourquoi google s'est décidé a envoyer la notification après avoir kill le process en 2.2, mystère...ca me semble vraiment pas très malin en tout cas. :rolleyes: Lien vers le commentaire Partager sur d’autres sites More sharing options...
Heartnet46 Posté(e) 30 septembre 2010 Auteur Share Posté(e) 30 septembre 2010 Up, personne a une idée ? :s Lien vers le commentaire Partager sur d’autres sites More sharing options...
houmiak Posté(e) 30 septembre 2010 Share Posté(e) 30 septembre 2010 Essaye de gérer les accès a la carte se dans un service afin de ne pas te faire Killian ton processus qui restera d'en vie pour gérer les Evénement éjecté et/ou dissmount. C'est par la que je creuserai moi. Lien vers le commentaire Partager sur d’autres sites More sharing options...
Heartnet46 Posté(e) 30 septembre 2010 Auteur Share Posté(e) 30 septembre 2010 Ok merci, je vais essayer ca. edit: bon j'ai réussi un peu différemment. Pendant mon traitement sur la carte sd, je vais lire périodiquement les dernières ligne du logcat. Il y a quelque ligne qui arrive avant l'intent media_eject et qui indiquent que la carte sd va être unmount d'un moment à l'autre. Ca me permet de fermer rapidement toutes mes connections à la carte sd et ainsi android ne kill pas mon app =D Ok c'est pas génial et ca ne fonctionnera probablement pas avec d'autres version d'android, mais au moins ca marche...En espérant que google renvoi une notification avant de fermer le processus dans ses prochaines versions d'android. Lien vers le commentaire Partager sur d’autres sites More sharing options...
Recommended Posts
Archivé
Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.