Ich bin neu in Android-Entwicklung, ich versuche, eine iOS-App auf Android zu portieren. Grundsätzlich muss meine App mit einem Server in Echtzeit mit Socket IO kommunizieren. Es stellt eine Verbindung zum Server her und verarbeitet dann die verschiedenen Nachrichten, bis der Server die Verarbeitung der Anforderung abgeschlossen hat.Singleton oder Service für Socket-Verbindung
In meiner IOS-App verwende ich ein Singleton-Muster, um die Anfragen an meinen WebSocket-Server zu senden, und ich benutze die gleiche Instanz, um die Serverantwort zu delegieren. In Android würde ich das gleiche Muster verwenden, mit einem Callback-Objekt in meiner Aktivität, um den Benutzer umleiten nach Erhalt einer Serverantwort.
Ich brauche meine App, um die Socket-Verbindung offen zu halten, bis wir den richtigen Status vom Server erhalten, auch wenn die App im Hintergrund läuft.
Einige Leute empfehlen, den Dienst mit Broadcast-Empfänger anstelle von Singleton zu verwenden. Ist es in meinem Fall das Beste?
Vielen Dank für diese Antwort Trevor Page! Ok, ich gehe mit einem Dienst mit einem anderen Thread, um das zu implementieren. Aber wie kann ich meinen Service und meine Aktivitäten miteinander kommunizieren lassen? Die Aktivität könnte über Socket Io eine Anforderung erstellen, und der Dienst muss die Statusaktualisierung an die verschiedenen Aktivitäten übermitteln. Muss ich eine Broadcast für jede Komponente implementieren? –
Ok ich fand, dass ich meinen Dienst mit meinen Aktivitäten binden muss, um damit zu interagieren. Aber ich bin immer noch verwirrt über die Methode, die ich verwenden könnte, um den Service (die Socket-Verbindung) Ergebnisse in meiner Tätigkeit zu erhalten? –
Ok, wenn Sie herausgefunden haben, wie Sie zwischen meinem Dienst und meiner Aktivität auf beide Arten kommunizieren können. Ich brauche einen IBinder für den Aufruf des Dienstes von meiner Aktivität und ich brauche einen BroadcastReceiver, um die Serverergebnisse in meiner Aktivität zu erhalten, hoffe, dass es jemandem helfen könnte. –