Utilisation du Gestionnaire Android
Qui est la meilleure façon d'utiliser un gestionnaire. Tous les avantages. Tous les exemples que j'ai rencontré semblent donner de la ligne version.
À l'aide de implémente Handler.Callback
dans la classe et la mise en œuvre de la méthode de l'interface.
ou
À l'aide de code en ligne de la version
private Handler mHandler = new Handler(){ ....};
OriginalL'auteur Lakshman Chilukuri | 2011-03-08
Vous devez vous connecter pour publier un commentaire.
Le terme commun ou ces inline définitions de classe est Anonyme Classes.
Vous pouvez en lire plus à propos de la discussion sur ces Java/Android: anonyme classes locales vs nommé classes
Essentiellement les principales différences sont readbility, la vitesse de codage, la réutilisation et la portée.
À partir d'une ressource du point de vue de la classe anonyme de création peut provoquer une surcharge dans le garbage collector, comme discuté dans Éviter De Créer Des Objets Inutiles. Je ne suis pas certain sur les détails exacts de l'anonymat de la création de classes, cependant, il est logique que la mise en œuvre de l'interface de la classe est plus efficace.
@WilliamTMallard a fourni un exemple de ce que PAS à faire. Dans son exemple, une longue et syntacticly complexe gestionnaire doit être implementented sur la classe plutôt qu'anonyme gestionnaire, car il est plus difficile de les lire et les modifier quand définie en ligne.
OriginalL'auteur Merlin
http://developer.android.com/reference/android/os/Handler.html
Est un Gestionnaire qui vous permet d'envoyer et de traiter le Message et Praticable objets associés à un thread MessageQueue. Chaque instance de Gestionnaire est associé à un fil et ce fil de message de la file d'attente. Lorsque vous créez un nouveau Gestionnaire, il est lié à l'thread /message de la file d'attente du thread qui est de la création -- à partir de ce moment, il va livrer des messages et runnables pour que la file d'attente de messages et de les exécuter comme ils sortent de la file d'attente de messages.
Il y a deux utilisations principales pour un Gestionnaire de:
dans l'avenir; et
votre propre.
Exemple 1
utilisation de gestionnaire en application de page d'accueil.
Exemple 2
utilisation du Gestionnaire de réseau de demandes de l'enfant dans le thread si la demande de travail peut prend du temps.
Exemple 3
utilisation du Gestionnaire et de la Minuterie pour mettre à jour la barre de progression.
OriginalL'auteur Eddy
Ce n'est vraiment pas une réponse à la question ci-dessus car je ne sais pas ce qu'est "la meilleure façon", et cela dépend probablement sur ce que vous faites. Cependant, je vais vous expliquer ce que je fais et pourquoi.
Je suis en train d'écrire une application qui sert de télécommande. Il y a plusieurs activités qui vont interagir avec le périphérique contrôlé, et les différentes choses doivent se faire sur la base du résultat de la commande et de l'activité qu'il venait de. Deux choses que je n'aime pas sur les gestionnaires sont A) qu'ils finissent par être une sorte de "évier de cuisine" sur la construction, la mise en œuvre de la fonctionnalité à partir de différentes sources, et B) qu'ils se sont séparés d'une action (l'envoi de la commande dans mon cas) de la transformation de l'résultat de cette action. Cependant, à l'aide d'un anonyme (bon terme? Je suis un noob.) gestionnaire comme un paramètre me permet de garder la logique de l'ensemble. Voici le pseudo-code de mon approche:
(Souvenez-vous, c'est probablement la peine de exactement ce que vous avez payé pour cela. 😉 )
OriginalL'auteur William T. Mallard
Il y a un danger dans l'utilisation anonyme des classes dans Android. Comme décrit dans ce blog -
Et ici est une occasion pour une fuite.
Donc, la réponse courte est: mettre en œuvre les méthodes d'interface ou d'utiliser des classes internes (qui ne tiennent pas l'extérieur de la classe de référence).
Par exemple, une fuite sûr Gestionnaire pourrait ressembler à ceci:
J'ai fait un blog autour de l'utilisation de Gestionnaires d', donc peut-être la peine de vérifier 🙂
OriginalL'auteur lomza