Dans mon application Android, certaines données doivent être synchronisées quotidiennement mais doivent également être mises à jour toutes les heures lorsqu'un utilisateur se trouve dans l'application.Meilleure stratégie pour implémenter ce comportement dans l'application Android?
J'ai déjà implémenté un service qui est appelé à partir d'une alarme pour la mise à jour quotidienne. J'ai un problème avec le développement d'une stratégie pour faire la synchronisation horaire. Je pourrais aussi utiliser une alarme horaire et tirer la même intention, mais puisque votre application peut être tuée à tout moment, il n'y aurait aucun moyen de l'annuler (et puisqu'ils utilisent la même Intention, annuler annulera TOUTES les alarmes, y compris ma synchronisation quotidienne, donc ce n'est probablement pas bon).
L'autre option consiste à utiliser une minuterie qui est définie à l'intérieur de l'application, et qui a déclencher mon intention à l'intérieur de l'application. Je suppose que tous les Timers sont annulés quand une application est détruite? Mais mon application se compose de plusieurs activités et je veux que le minuteur fonctionne à travers toutes les activités, comment puis-je faire cela? Je ne veux pas dupliquer le code - nous utilisons déjà une sous-classe pour Activity et ListActivity.
En fait, c'est * le * type d'application que les gens peuvent utiliser pendant des heures (je ne peux pas dire ce que c'est exactement sans enfreindre une NDA). Cependant, j'ai décidé de mettre au rebut l'idée de mise à jour horaire via des temporisateurs/alarmes. Le schéma que j'ai décidé de mettre en œuvre: * Mise à jour une fois par jour via une seule alarme (qui reçoit alors de nouvelles données et définit une nouvelle alarme pour le lendemain). * Si l'utilisateur utilise l'application et qu'il a été> 1h depuis la dernière mise à jour, effectuez la mise à jour en arrière-plan. * Pour une activité spécifique, si l'utilisateur a modifié certaines données, j'expédie ces données. * L'utilisateur peut également forcer la mise à jour manuelle à tout moment. – Eno
@Eno: cela ressemble à un bon plan. – CommonsWare
Je souhaite qu'il y avait un exemple plus approfondi de l'utilisation de wakelock dans Android. J'ai regardé le livre du Busy Coder mais j'ai du mal à le comprendre clairement. – Eno