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/26 22:41]
enric_mieza_sanchez [Android i WebSockets]
android_comunicacions [2026/10/16 13:12] (actual)
enric_mieza_sanchez [Android i WebSockets]
Línia 56: Línia 56:
 <code kotlin MainActivity.kt> <code kotlin MainActivity.kt>
 class MainActivity : AppCompatActivity() { class MainActivity : AppCompatActivity() {
 +
 +    lateinit var wsclient : MyWebSocketClient
  
     // "inner" és important per accedir als mètodes de MainActivity     // "inner" és important per accedir als mètodes de MainActivity
Línia 71: Línia 73:
             // crides segures a la GUI (main thread)             // crides segures a la GUI (main thread)
             runOnUiThread {             runOnUiThread {
-                val iv = findViewById<TextView>(R.id.textView) +                val tv = findViewById<TextView>(R.id.textView) 
-                iv.text = "Nou missatge: $message"+                tv.text = "Nou missatge: $message"
             }             }
         }         }
Línia 91: Línia 93:
         var wsclient = MyWebSocketClient(uri)         var wsclient = MyWebSocketClient(uri)
         wsclient.connect()         wsclient.connect()
 +    }
 +    
 +    fun enviaMissatge( text : String ) {
 +        if( wsclient.isOpen && text!="" ) {
 +            wsclient.send( text )
 +        }
     }     }
 } }
Línia 126: Línia 134:
 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. 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'').+L'objecte ''WebSocketClient'' facilita la gestió del //thread// de comunicació alternatiu o //network thread// i no caldrà que el creem explícitament i podem emprar directament les crides ''connect()'' o ''send("missatge...")''
  
-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''.+Per actuar, en canvi, sobre la GUI cal fer-ho des del //main thread// de nou. Les //callbacks// com ''onMessage'' s'executaran al //thread// secundari de comunicacions. En aquest cas ho resolem amb la funció ''runOnUiThread''.
 </WRAP> </WRAP>
  
android_comunicacions.1761518500.txt.gz · Darrera modificació: 2025/10/26 22:41 per enric_mieza_sanchez