Bonjour,
J'ai besoin d'explications sur la différence entre une classe étendue dite de type "Activity" ou "Service" ou autre... Je pense quelque chose cloche dans mon programme a cause de ca.
J'ai développé un projet utilisant un CursorLoader implémenté dans le MainActivity, et un "fichierService".
Dans le "fichierService" je créer une nouvelle entrée dans la base de donnée de ma tablette et je poste les données sur un serveur. Lorsque mes données sont reçues sur le serveur, je met a jour la base de ma tablette pour indiquer que mon fichier a été stocké. Mon CursorLoader lit une colonne booléenne accusé de réception, tout les lignes "false" sont récupérées pour être postées.
Le problème c'est que la mise jour ne se fait pas correctement, comme si il y avait un retard pour posté les données. A chaque fois que je re-lance mon application toute les données "en retard de " sont postées et mise a jour au debut du cycle. Ensuite, le timer qui creer de nouvelles entrées pour mes test se lance et les nouvelles infos sont stockées dans ma tablette. Logiquement le cursorLoader devrait détecter immédiatement la nouvelle entrée et déclencher mon code de post de données.
Pour schématiser, J'aimerai que mon code se déroule comme suit:
Ajout d'une données dans la tablette -> Lecture de la nouvelle ligne par le cursorLoader -> Post de mes données du serveur distant -> Mise a jour de ma BDD tablette (colonne accuse de reception == true)
Exemple de l'erreur:
Premier lancement de l'application:
Enregistrement d'une donnee 1
Enregistrement d'une donnee 2
Enregistrement d'une donnee 3
Enregistrement d'une donnee 4
Enregistrement d'une donnee 5
...
Enregistrement d'une donnee 6
POST de la donnees 6 au server
Mise a jour de la donnees 6
Enregistrement d'une donnee 7
POST de la donnees 7 au server
Mise a jour de la donnees 7
Enregistrement d'une donnee 8
POST de la donnees 8 au server
Mise a jour de la donnees 8
...
Deuxieme lancements:
POST de la donnees 1 au server
Mise a jour de la donnees 1
POST de la donnees 2 au server
Mise a jour de la donnees 2
POST de la donnees 3 au server
Mise a jour de la donnees 3
POST de la donnees 4 au server
Mise a jour de la donnees 4
POST de la donnees 5 au server
Mise a jour de la donnees 5
Enregistrement d'une donnee 6
Enregistrement d'une donnee 7
Enregistrement d'une donnee 8
Enregistrement d'une donnee 9
Enregistrement d'une donnee 10
Enregistrement d'une donnee 11
Enregistrement d'une donnee 12
Enregistrement d'une donnee 13
Enregistrement d'une donnee 14
Enregistrement d'une donnee 15
Enregistrement d'une donnee 16
POST de la donnees 16 au server
Mise a jour de la donnees 16
Enregistrement d'une donnee 17
POST de la donnees 17 au server
Mise a jour de la donnees 17
...
lancement 3:
POST de la donnees 6 au server
Mise a jour de la donnees 6
POST de la donnees 7 au server
Mise a jour de la donnees 7
POST de la donnees 8 au server
Mise a jour de la donnees 8
POST de la donnees 9 au server
Mise a jour de la donnees 9
POST de la donnees 11 au server
Mise a jour de la donnees 11
POST de la donnees 12 au server
Mise a jour de la donnees 12
POST de la donnees 13 au server
Mise a jour de la donnees 13
POST de la donnees 14 au server
Mise a jour de la donnees 14
POST de la donnees 15 au server
Mise a jour de la donnees 15
Enregistrement d'une donnee 18
Enregistrement d'une donnee 19
... ect
Je sais c'est un peu beaucoup d'infos, pour moi l'activite devrai travailler comme une tache de fond, je me trompe?
Merci de votre aide
Partager