7
votes

Meilleure pratique pour afficher les contacts Android + numéros de téléphone

Quelle est la meilleure approche d'une perspective de performance pour montrer à la listeView avec des contacts et leurs numéros de téléphone?

  • Utilisez cursoradapter avec le curseur de contacts et apportez les numéros de téléphone requis lorsque Bindview est invoqué pour chaque ligne
  • Copiez tous les contacts et les numéros de téléphone vers un réseau en mémoire dans un fil d'arrière-plan, puis montrez-leur avec un arrayadapter.
  • Autres solutions?

0 commentaires

4 Réponses :


1
votes

À mon avis, une solution de mélange devrait être meilleure. pourquoi cela? Parce que vous ne savez pas ou si vous êtes supposé que, dans la plupart des contextes, vous ne pouvez pas savoir comment et combien de contacts votre application devra répertorier . Aussi combien de contacts sont stockés dans le téléphone. Si nous connaissons les deux réponses, nous pouvons sûrement prendre la solution la plus appropriée.

Donc, je vous suggère d'abord d'apporter un nombre corrigé de contacts à l'aide d'une matrice en mémoire dans un fil d'arrière-plan, par exemple le premier 20. Vous considérez également que votre application effectuera plus d'une demande à ce service. Il sera génial d'utiliser une sorte de mise en cache. La pire approche devrait être d'appeler à nouveau et encore le service de contacts. Ensuite, pour une demande de contact n ° 21, vous pouvez apporter 20 prochaines vingt et ainsi de suite.

Vous pouvez donc utiliser les avantages des deux mondes et de minimiser les inconvénients. Dépend toujours de l'application et du contexte dont nous parlons.


0 commentaires

0
votes

Je pense http://www.higherpass.com/andrroid / Tutoriels / Travailler avec Android-Contacts / sera une option. Où vous pouvez trouver tout l'installation que vous voulez ...


0 commentaires

1
votes

Je pense que cela dépendrait de trois facteurs:

  1. Combien de contacts parlons-nous ici?
  2. Combien de temps faut-il pour charger chaque contact? (E.G. Avez-vous une vue très compliquée qui doit être gonflée ou vous chercher à contacter les images / etc. qui nécessitent des E / S réseau?)
  3. Combien de contacts montrent à la fois à l'utilisateur?

    Votre solution, on irait la plupart des cas si la deuxième solution offre également des avantages également:

    solution 1:

    Avantage:

    1. La vue différée l'inflation dans une "vue comme on va aller" peut bien performer lorsqu'il est assez rapide pour gonfler les vues sans aucun problème d'interface utilisateur notable.

      Inconvénient:

      1. Si vos contacts associent à beaucoup de données et nécessitent une inflation compliquée, vous remarquerez peut-être un retard.

      2. moins flexible et extensible comparant à la solution 2. Comme indiqué ci-dessous.

        solution 2:

        Avantage:

        1. Vous avez le contrôle de toutes les étapes, vous pouvez donc le simuler facilement aussi simple que l'un, mais ajouter des choses pourraient être plus faciles: recherches dans la mémoire entière, tri personnalisé via la matrice, etc. Ils fonctionnent mieux quand vous avez tout interrogé à un tableau qui est déjà là. Ou si vous souhaitez effectuer une charge personnalisée ultérieurement ou que vous ajoutez des données supplémentaires concernant les contacts nécessitant un certain traitement (disons E / S), il peut être légèrement plus facile que l'adaptateur de curseur.

          Inconvénient:

          1. Exécution: Ce n'est pas la façon de le faire. Faire des choses plus personnalisées aura besoin de vous pour bien gérer tous les threads et gérer bien l'apparence initiale. Assurez-vous que ça échelle.

            Alors oui, selon lesquels vous travaillez exactement, choisissez le approprié.


0 commentaires

0
votes

Je pense que le cursoradapter est la meilleure solution.

Assurez-vous également de regarder cette vidéo http://www.youtube.com/watch?v = wdbm6wveo70 Il parle d'optimisations que, à mon avis, sont nécessaires pour faire défiler votre liste sans heurts.


0 commentaires