Bonjour J'ai implémenté le poussoir pour le chat en temps réel et l'abonnement au canal poussoir, mais j'ai beaucoup d'activités et de fragments où je veux écouter les événements pushr. J'ai ajouté ce code dans chaque activité/fragment, mais le problème est qu'il crée plusieurs abonnements pour chaque identifiant. Je sais que je dois utiliser Singleton pour cela quelqu'un peut-il me diriger dans la bonne direction pour y parvenir?Abonnement à la chaîne Android Pusher Singleton
Voici le code que je suis en train d'écrire dans toutes les activités/fragment
private PusherOptions options;
private Channel channel;
private Pusher pusher;
options = new PusherOptions();
options.setCluster("ap2");
pusher = new Pusher("afbfc1f591fd7b70190f", options);
pusher.connect();
profile_id = Global.shared().preferences.getString("PROFILE_ID", " ");
channel = pusher.subscribe(profile_id);
channel.bind("message",
new SubscriptionEventListener() {
@Override
public void onEvent(String s, String s1, final String data) {
runOnUiThread(new Runnable() {
@Override
public void run() {
try {
JSONObject result = new JSONObject(data);
String message = result.getString("message");
String time = result.getString("time");
String reId = result.getString("recieverId");
new_message = message;
getConvoData(k, message);
} catch (JSONException e) {
e.printStackTrace();
}
System.out.println("DATA ====>>" + data);
}
});
}
});
Avez-vous essayé de mettre le code d'instanciation Pusher dans votre classe Application? C'est la manière la plus simple possible d'obtenir une seule instance par application à laquelle vous pouvez accéder à partir de chaque fragment/activité. Une meilleure façon de le faire serait d'utiliser quelque chose comme Dague pour l'injection de dépendance: https://google.github.io/dagger/ – zmarkan
J'ai pu implémenter cela correctement, merci beaucoup, maintenant pouvez-vous me suggérer comment puis-je refléter ces changements dans mon activité/fragment afin que je puisse mettre à jour mon adaptateur en écoutant ces événements pousseurs, par exemple je veux écouter l'événement "message" et mettre à jour le chat et la liste de chat dans ChatActivity, comment puis-je y arriver? en envoyant des données de la classe globale à une activité spécifique, merci encore. –