bytes.cat

La wiki d'FP d'informàtica

Eines de l'usuari

Eines del lloc


android_comunicacions

Diferències

Ací es mostren les diferències entre la revisió seleccionada i la versió actual de la pàgina.

Enllaç a la visualització de la comparació

Ambdós costats versió prèvia Revisió prèvia
Següent revisió
Revisió prèvia
android_comunicacions [2025/10/14 17:47]
enric_mieza_sanchez [Android i WebSockets]
android_comunicacions [2025/10/27 16:16] (actual)
enric_mieza_sanchez [Android i WebSockets]
Línia 1: Línia 1:
 ====== Comunicacions en Android ====== ====== Comunicacions en Android ======
 +
 +{{ android:android-networking-intro.png?400 }}
  
 Referències: Referències:
Línia 55: Línia 57:
 class MainActivity : AppCompatActivity() { class MainActivity : AppCompatActivity() {
  
-    class MyWebSocketClient(serverUri: URI) : WebSocketClient(serverUri) {+    // "inner" és important per accedir als mètodes de MainActivity 
 +    inner class MyWebSocketClient(serverUri: URI) : WebSocketClient(serverUri) {
  
         override fun onOpen(handshakedata: ServerHandshake?) {         override fun onOpen(handshakedata: ServerHandshake?) {
Línia 65: Línia 68:
         override fun onMessage(message: String?) {         override fun onMessage(message: String?) {
             println("📥 Rebut: $message")             println("📥 Rebut: $message")
 +
 +            // crides segures a la GUI (main thread)
 +            runOnUiThread {
 +                val tv = findViewById<TextView>(R.id.textView)
 +                tv.text = "Nou missatge: $message"
 +            }
         }         }
  
Línia 113: Línia 122:
  
 <WRAP tip> <WRAP tip>
-Teniu més explicacions i exemples a la pàgina [[WebSockets Java]] d'aquesta wiki.+**Main thread i network thread** 
 + 
 +Recordeu (com s'explica a [[Android Threads]]) que no es poden dur a terme accions de xarxa en el //main thread// que és el de la GUI. 
 + 
 +L'objecte ''WebSocketClient'' facilita la gestió del //thread// de comunicació alternatiu o //network thread// (no caldrà que el creem explícitament i podem emprar directament les //callbacks// com ''onMessage''). 
 + 
 +Per actuar, en canvi, sobre la GUI cal fer-ho des del //main thread// de nou. En aquest cas ho resolem amb la funció ''runOnUiThread''
 +</WRAP> 
 + 
 +<WRAP tip> 
 +Teniu més explicacions i exemples de WebSockets a la pàgina [[WebSockets Java]] d'aquesta wiki.
 </WRAP> </WRAP>
  
android_comunicacions.1760464077.txt.gz · Darrera modificació: 2025/10/14 17:47 per enric_mieza_sanchez