Ací es mostren les diferències entre la revisió seleccionada i la versió actual de la pàgina.
| Ambdós costats versió prèvia Revisió prèvia Següent revisió | Revisió prèvia | ||
|
android_comunicacions [2025/10/14 17:44] enric_mieza_sanchez [Comunicacions REST HTTP] |
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: | ||
| Referències: | Referències: | ||
| Línia 17: | Línia 19: | ||
| ===== Android i WebSockets ===== | ===== Android i WebSockets ===== | ||
| + | |||
| + | Per a WebSockets, la implementació de la llibreria ja és asíncrona, pel què podem cridar el mètode '' | ||
| Per poder emprar la [[https:// | Per poder emprar la [[https:// | ||
| Línia 53: | Línia 57: | ||
| class MainActivity : AppCompatActivity() { | class MainActivity : AppCompatActivity() { | ||
| - | class MyWebSocketClient(serverUri: | + | |
| + | inner class MyWebSocketClient(serverUri: | ||
| override fun onOpen(handshakedata: | override fun onOpen(handshakedata: | ||
| Línia 63: | Línia 68: | ||
| override fun onMessage(message: | override fun onMessage(message: | ||
| println(" | println(" | ||
| + | |||
| + | // crides segures a la GUI (main thread) | ||
| + | runOnUiThread { | ||
| + | val tv = findViewById< | ||
| + | tv.text = "Nou missatge: $message" | ||
| + | } | ||
| } | } | ||
| Línia 111: | Línia 122: | ||
| <WRAP tip> | <WRAP tip> | ||
| - | Teniu més explicacions i exemples a la pàgina [[WebSockets Java]] d' | + | **Main thread i network thread** |
| + | |||
| + | Recordeu (com s' | ||
| + | |||
| + | L' | ||
| + | |||
| + | Per actuar, en canvi, sobre la GUI cal fer-ho des del //main thread// de nou. En aquest cas ho resolem amb la funció '' | ||
| + | </ | ||
| + | |||
| + | <WRAP tip> | ||
| + | Teniu més explicacions i exemples | ||
| </ | </ | ||