Google IO Reste modèle de conception, fini ContentProvider et collé sur l'obtention de données à partir du réseau
Après avoir vu le très connu de la vidéo sur ce sujet, j'ai décidé d'aller avec motif de conception B. à l'Aide d'un contentprovider avec servicehelper.
Fondamentalement, j'ai les fichiers suivants:
- MyProvider
- Mabase
- Mycontract
Dans l'activité, je peux maintenant obtenir la contentresolver et interroger le fournisseur. Tout fonctionne très bien jusqu'à présent.
Maintenant, j'ai besoin de synchroniser mon contentprovider pour récupérer les données de mon API REST.
J'ai donc besoin de mettre en œuvre une aide de service de service et de Repos de la méthode.
L'étude de la Google IO app m'a beaucoup aidé, je suis un novice avec Android, il est donc encore difficile à comprendre.
Je vois que Google utilise RemoteHandlers pour traiter les données externes, je suppose qu'ils sont le Processeur classes dans le diagramme?
Ce que je ne comprends pas, c'est comment je peux mettre en œuvre les servicehelper + service pour obtenir les données à partir du réseau.
- Où dois-je appeler le service de l'aide?
- Ce faire, le service et l'aide nécessaire pour faire exactement?
- Y a de bons exemples de ce modèle de conception?
J'ai lu plusieurs sujets sur pile à ce sujet, tout en suggérant des méthodes différentes. J'ai trouvé un exemple qui déclare un restprovider et puis myProvider a prolonger le fournisseur. Je n'aime pas ces solutions et souhaitez suivre cette structuré modèle de conception.
- Avez-vous un lien vers le Google IO vidéo vous référence?
- Je pense que vous trouverez toutes vos réponses dans ce projet : github.com/necronet/Eli-G il a été détaillé dans cette SORTE de post.
- Bonjour Zakaria, j'ai trouvé cet exemple il y a une semaine, mais c'est un très sale mise en œuvre de ce modèle. Il en crée une autre Contentprovider pour traiter le RESTE au lieu de un service. Merci pour votre réponse, mais je cherche pour la pleine mise en œuvre du schéma que celui décrit dans l'image. @John youtube.com/watch?v=xHXn3Kg2IQE
- ma réponse précédente n'était pas correcte. J'ai confondu ce projet avec un autre code que j'ai eu ici. Je l'ai déjà regardé Eli-g du code, mais je vais avoir du mal à saisir sa logique. Im prêt à approuver un awnser qui explique entièrement eli-g est logique. Merci pour les réponses pour l'instant
- Avez-vous eu un coup d'oeil au post où Eli-G explique que la logique ?
- oui je l'ai fait mais il n'est pas clair. Ce que je comprends, c'est qu'il a suivi Un modèle à partir de la vidéo de google. Cela serait acceptable pour moi d'obtenir une meilleure compréhension de la façon dont les choses fonctionnent. Tellement malade de mettre en œuvre cette méthode, au lieu de l'option B. mais Im pas sûr de ce que l'enfer qu'il est en train de faire. Dans homeActivity il est le démarrage de la LoaderService et TwitterService. Pourquoi les 2 services? Il semble que le LoaderService est tout ce dont j'ai besoin pour le REPOS de travail même si. Pourriez-vous élaborer peut-être plus? Merci
- salut à tous, je me demandais juste comment les choses fonctionnent pour vous. Avez-vous réussi à mettre en œuvre motif B exactement comme l'a proposé? Je suis face au même défi, et il semble que il n'y a toujours pas d'exemples disponibles, les seuls à être disponible pour l'option A (pour mon application, modèle B semble plus approprié, cependant).
- des choses très bien fonctionné, j'ai passé beaucoup de temps à essayer d'obtenir le coup de lui, mais une fois que vous l'avez. Vous allez l'utiliser pour tous vos projets! Malheureusement je ne peux pas vous donner un exemple, parce que le projet que je ne l'avais fermé la source (il ne m'appartiennent plus). Bonne chance avec votre mise en place, j'espère que vous réussirez! Sa vaut le coup. Sur une note de côté: j'ai étudié la google IO 2011 app beaucoup de choses à regarder à leur mise en œuvre et, à partir de là. Ils n'ont pas pleinement l'utiliser comme le schéma ci-dessus.
- dommage qu'il soit fermé à la source pas une chance pour le partage de certains composants clés, je suppose? de toute façon - comment étroitement u ne correspond au motif B ci-dessus? très exactement, ou de fortes variations? (pour quelque raison que ce soit, tous les exemples et les posts sur l'internet semblent à poignée modèle B seulement). thx!
- La Source est devenue disponible: github.com/samvdb/TracknTrace
Vous devez vous connecter pour publier un commentaire.
Dans ma compréhension du modèle est:
À vos questions (j'ai changé l'ordre):
Où dois-je appeler le service de l'aide?
- Je choisir Un modèle à partir des Veillées de parler. Dans ce cas, l'appel dépend de votre application. Vous pourrait déclencher la mise à jour au démarrage de l'application, lorsque l'activité est créée ou lorsque l'utilisateur sélectionne un bouton de mise à jour. Je choisirais à la création d'activités.
Vous avez choisi votre modèle de B. Dans ce cas, il est clair que le fournisseur de contenu a pour déclencher la mise à jour. Quand? Pour obtenir de nouvelles données: au moment de la création ou après le premier accès en lecture. Je voudrais utiliser le temps de création. Pour créer, mettre à jour, supprimer après l'action correspondante à votre fournisseur de contenu.
, Y a de bons exemples de ce modèle de conception?
Mon post à https://stackoverflow.com/a/8693919/734687: la seule implémentation open source de référence que je connais est disponible sous http://datadroid.foxykeep.com. C'est une bibliothèque qui vous pouvez utiliser dans votre propre application. L'architecture est expliqué sous /présentation - assurez-vous de le lire.
que fait le service helper besoin de faire exactement?
Si vous regardez la les diapositives à la diapositive 19 il est un singleton qui encapsule l'appel du service et gère les appels asynchrones via la demande id.
que fait le service doit-il faire exactement?
Le service (diapo 17 dans la présentation) s'assure juste que l'action est exécutée en arrière-plan.