Halten Sie Socket-Verbindung zwischen Aktivitäten auf Android

7

Ich entwickle eine Anwendung auf Android 3.1 und ich habe eine Aktivität A, die eine Unterklasse hat, die sich von aSyncTask erstreckt, diese Unterklasse erstellt einen Socket und stellt eine Verbindung zu einem Server her. Alle meine Kommunikation ist gut. Ich habe Nachrichten erhalten und Befehle an einen Server gesendet, aber wenn ich einen bestimmten Befehl bekommen habe, muss ich eine zweite Aktivität starten (Aktivität B), aber ich kann meinen Socket nicht verlieren und die Kommunikation mit dem Server aufbauen, dazu muss ich noch fähig sein Empfangen und Senden von Befehlen von Aktivität B an Server. Wie kann ich das machen?? Irgendwelche Hilfe bitte!

    
Leonardo Arango Baena 16.10.2011, 08:16
quelle

2 Antworten

14

Mein Ansatz ist die Implementierung eines Service und die Verlagerung / Zentralisierung Ihres gesamten Netzwerkverbindungscodes in den Dienst Für alle Aktivitäten, die eine Socket-Verbindung verwenden möchten, binden Sie Ihren Netzwerkdienst in onCreate () und anschließend nach dem Abschluss der Bindung in onDestory ()

    
yorkw 18.10.2011, 00:28
quelle
10

Laut Dianne Hackborn (Android Engineer) empfiehlt es sich, Netzwerkverbindungen zwischen Aktivitäten zu übergeben, um einen Singleton zu erstellen, über den alle Aktivitäten auf die Verbindung zugreifen können. Sehen Sie hier und überprüfen Sie den ersten Post von Dianne.

Die Seite Dienste auf der Android-Entwickler-Website (Randnotiz im Abschnitt "Grundlagen") ) erwähnt auch, dass Sie einen Dienst nur verwenden sollten, wenn Sie Code ausführen müssen, der die Ausführung fortsetzen muss, während sich Ihre Anwendung im Hintergrund befindet.

    
CoatedMoose 25.03.2014 19:20
quelle