Question

Je prévois d'écrire un IntentService pour télécharger de nouveaux paquets (nouveaux éléments pour l'application). Mon seul problème est que lorsque je diffuse la fin des téléchargements, je dois mettre à jour le modèle de mémoire, si l'application est en cours d'exécution. Si elle ne fonctionne pas, rien ne doit être fait, comme l'application va créer le modèle de mémoire de la DB lors de son démarrage. Côté performance, l'interface utilisateur fonctionne de la mémoire, non pas du db. Toute idée comment dois-je aborder, ou je suis tout à fait sur la mauvaise voie?

EDIT: Pour plus de clarté: Disons que j'ai MyIntentService, que des inserts de nouvelles lignes à mon DB, puis déclenche une BroadcastIntent, qui est reçu par MyBroadcastReceiver. Maintenant, la face I problème est que l'instance de MyBroadcastReceiver doit en informer en quelque sorte la classe modèle, ce qui est un singleton. Le problème est que ce modèle (singleton) instance doit être disponible que si mon application est en cours d'exécution, car cela est consommé que par l'interface utilisateur (en utilisant uniquement DB serait moyen de ralentir). Pas besoin de notifier mon exemple modèle s'il n'y a pas l'interface utilisateur de l'utiliser. Je ne peux pas faire mon modèle à un BroadcastReceiver, car ils sont initiés en tout temps, et ils ne peuvent être singleton soit (pour autant que je sache).

Était-ce utile?

La solution

Je résolu ce problème en ayant le registre de l'interface utilisateur en tant que récepteur de radiodiffusion et mettre à jour le modèle selon les besoins. Dans ma solution si l'interface existe le modèle sera toujours instancié.

Une autre solution est de vérifier si le modèle est instancié et ne poursuit si elle est.

Autres conseils

Il est un peu difficile de répondre et de dire quelque chose ayant seulement sans coder vos mots. Peut faire partie seperated supplémentaire de votre projet qui initialiser / créer votre « modèle de mémoire » de DB et cette partie devrait être l'un undepedent, de sorte que vous pouvez l'utiliser partout à tout moment, lors du démarrage de votre activité / application ou lorsque obtenir la diffusion.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top