Comment Définir des Rappels dans Android?
Lors de la dernière Google IO, il y avait une présentation sur la mise en œuvre reposant applications client. Malheureusement, ce n'était qu'une discussion à haut niveau sans le code source de l'application.
Dans ce schéma, sur le chemin de retour, il existe différents rappels à d'autres méthodes.
Comment dois-je déclarer ce que ces méthodes sont?
Je comprends l'idée d'un rappel - un morceau de code qui est appelé après un certain événement qui s'est passé, mais je ne sais pas comment la mettre en œuvre. La seule façon que j'ai mis en place des rappels ont été jusqu'à présent primordial de diverses méthodes (onActivityResult par exemple).
J'ai l'impression d'avoir une compréhension de base de la conception de ce modèle, mais j'obtiens toujours trébucher sur la façon de gérer le chemin de retour.
- Exactement ce dont vous avez besoin. Je cherchais la même chose et suis tombé sur ceci: javaworld.com/javaworld/javatips/jw-javatip10.html
Vous devez vous connecter pour publier un commentaire.
Dans de nombreux cas, vous disposez d'une interface et de transmettre un objet qui l'implémente. Les boîtes de dialogue, par exemple, ont la OnClickListener.
Tout aussi aléatoire exemple:
J'ai probablement foiré la syntaxe de l'option 2. Il est encore tôt.
Lorsque quelque chose arrive à mon point de vue, je déclenche un événement que mon activité est à l'écoute pour:
//DÉCLARÉS DANS (PERSONNALISÉ) VUE
//DÉCLARÉS DANS L'ACTIVITÉ
Si vous voulez en savoir plus sur la communication (rappels) entre les fragments, voir ici:
http://developer.android.com/guide/components/fragments.html#CommunicatingWithActivity
Pas nécessaire de définir une nouvelle interface lorsque vous pouvez en utiliser un existant:
android.os.Handler.Callback
. Passer un objet de type Callback, et appeler de rappel duhandleMessage(Message msg)
.Exemple pour mettre en œuvre la méthode de rappel à l'aide de l'interface.
Définir l'interface, NewInterface.java.
paquet javaapplication1;
Créer une nouvelle classe, NewClass.java. Il va appeler la fonction de rappel de la méthode dans la classe principale.
La classe principale, JavaApplication1.java, pour mettre en œuvre l'interface NewInterface - callback() la méthode. Il permettra de créer et appeler NewClass objet. Ensuite, le NewClass objet de rappel, c'est le rappel() la méthode à son tour.
de clarifier un peu sur le dragon de la réponse (puisqu'il m'a fallu un certain temps à comprendre de quoi faire avec
Handler.Callback
):Handler
peut être utilisé pour exécuter des rappels dans l'actuel ou un autre thread, en le passantMessage
s. leMessage
contient les données pour être utilisé à partir de la fonction de rappel. unHandler.Callback
peut être transmis au constructeur deHandler
afin d'éviter l'extension de Gestionnaire directement. ainsi, pour exécuter un code via le rappel du thread actuel:EDIT: viens de réaliser il y a une meilleure façon d'obtenir le même résultat (moins de contrôle de exactement quand pour exécuter la fonction de rappel):
Callback
version mieux parce que vous n'ont pas forcément accès aux données nécessaires parRunnable.run()
au moment que vous le construireVous pouvez également utiliser
LocalBroadcast
à cette fin. Voici un rapide quideCréer un récepteur de radiodiffusion:
C'est comment vous pouvez déclencher
annuler l'inscription d'un récepteur dans onPause: