SlideShare uma empresa Scribd logo
1 de 42
Lo Asynchronous Java ME and XML Andrea Castello http://javame-cinghius.blogspot.com [email_address]
Sommario (1) - Dal Web al Web 2.0 - Dal WML agli Smart Client - Ajax, Comet: modelli applicativi - Java ME: visione d'insieme e specifiche MSA (JSR-248)
[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],- Mobile e modello asincrono:  conclusioni (provvisorie...)
[object Object],[object Object],[object Object],L'evoluzione: dal Web...
...al Web 2.0 ,[object Object],[object Object],[object Object],[object Object]
- Cosa è veramente? Difficile identificarlo  monoliticamente. - T. O'Reilly (sett 05):  Napster fa parte del Web 2.0!! - Vera innovazione   E   fenomeno di marketing. -  Approcio decentralizzato : nuovo sistema di vedere il web come mezzo di comunicazione. I fatti: nuovi servizi vengono creati continuamente: (Google Maps, Suggest, Writely, Widgets/Widsets, feed readers,  Flickr, YouTube, Blogger) anche in versione “ Mashup ” (combinata), spesso in  beta. Web 2.0: una considerazione
Web 2.0: mashup API matrix ,[object Object],[object Object]
Utenti internet  1999 (stima) - >=90% connessi dial up fino a 56 kbit/sec  - <=10% connessi ADSL fino a 640 kbit/sec  2004  (Nielsen/ NetRatings) -   ~47% utenti italiani connessi ad alta velocità (7,9 mln, <13% della popolazione).  La banda larga è stata  essenziale  per la diffusione dei servizi “Web 2.0” Web 2.0: more bandwidth, please!!
“ Sistema operativo” browser-based (Web OS) con molte funzionalità  Mix di Ajax, Flash, Java Applet (Port scanner, FTP client, Paint) Web 2.0: EyeOS
Evoluzione mobile (1): WML su WAP ,[object Object],[object Object],[object Object],[object Object],[object Object],Risultato:  insuccesso clamoroso!
Evoluzione mobile (2): M-sites ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Evoluzione mobile (2): Mobile Ajax ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],(Asynchronous Javascript and XML)
Evoluzione mobile (2): Java ME ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],(Java Micro Edition)
Mobile 2.0 non è Mobile Web 2.0! ,[object Object],[object Object],[object Object]
Ajax: il modello applicativo
Oltre Ajax: il modello Comet ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Java ME: visione d'insieme
Mobile Service Architecture (JSR-248) ,[object Object],[object Object],[object Object],[object Object],[object Object]
UI in Java ME: approcio hi-level PRO CONTRO ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
UI in Java ME: approcio low-level PRO CONTRO ,[object Object],[object Object],[object Object],[object Object],[object Object]
Blogger feed search: l'ispirazione...
Blogger feed search: caratteristiche ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Blogger feed search: la struttura MainMenu ,[object Object],[object Object],[object Object],Schermata di scaricamento dell'intero feed
Bfs: estendiamo GameCanvas final public void  run(){ [...] // Gestione tasti in modalità “gaming” if (gameKeyEventsEnabled){ handleGamingKeys(); } // “Invita” a ridisegnare lo schermo con  //le relative modifiche grafiche. repaint(0, 0, width, height); // Obbliga ad eseguire immediatamente // qualunque richiesta di repaint // ancora in attesa. serviceRepaints();  [...] }
[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],serviceRepaints() vs callSerially()
Bfs: considerazioni sul disegno ciclico  ,[object Object],[object Object],[object Object],[object Object]
Bfs: connessioni Http asincrone ,[object Object],[object Object],// Ammettendo di inviare richieste sempre allo // stesso URL, usiamo un vettore per i parametri // della richiesta private  Vector queryStrings =  new  Vector(); // Vettore delle classi che gestiranno la response HTTP private  Vector listeners =  new  Vector(); ,[object Object],[object Object],[object Object]
HttpGet: dentro il run() synchronized  ( this ){   // Se non vi sono richieste pendenti si aspetta... while  (queryStrings.size() == 0){ try { wait();  }  catch  (InterruptedException e){ } [...] } request = (String)(queryStrings.elementAt(0)); listener = (ConnectionListener)listeners.elementAt(0);   [...] } sendRequest(request, listener); sendRequest effettua la connessione vera e propria. Il listener è la classe che gestisce i dati  della response HTTP
HttpGet: la connessione try{ conn = (HttpConnection)Connector.open(url+request); conn.setRequestMethod(HttpConnection.GET); in = conn.openDataInputStream(); rc = conn.getResponseCode(); if (rc != HttpConnection.HTTP_OK){ // gestione errore... } if(!errorOccurred){ listener.handleData(in); } } catch (Exception e){ [...] } finally{ // chiusura connessione... }
Blogger feed search: il listener ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
XML parsing: modalità ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
XML con Java ME: la liberia Kxml 2 ,[object Object],[object Object],[object Object],[object Object],[object Object],// Creo il parser e imposto l'input stream ricevuto // dalla response HTTP. KXmlParser parser = new KXmlParser(); parser.setInput(is, &quot;UTF-8&quot;); // Elemento che rappresenta il documento. Document doc = new Document();  try { doc.parse( parser ); } catch (Exception ex) {  // gestione errore  } I Inizializzazione di un parser DOM
XML parsing: esempio (1)
XML parsing: esempio (2)
Mettiamo tutto insieme! (o quasi...)
Blogger feed search: il risultato! ...su emulatore (SE W810i) e dispositivo reale (Nokia 6600)
Blogger feed search: le criticità ,[object Object],[object Object],[object Object],[object Object]
Modello asincrono: le prestazioni ¹: dato influenzato da prima autorizzazione dell'utente *: necessaria  ogni volta  un'autorizzazione dell'utente
Conclusioni: lavorare per il futuro  (prossimo...) ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Conclusioni: cosa fanno gli operatori? ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Postilla: Java open, Java free ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Il recordman : il 14/11/06 un programamtore tedesco mette a  disposizione la sua versione alfa (solo console testuale) di una KVM per PSP!
Grazie per l'attenzione.

Mais conteúdo relacionado

Semelhante a Asynchronous Java ME and XML

Presentazione Suite Nethesis
Presentazione Suite NethesisPresentazione Suite Nethesis
Presentazione Suite NethesisNethesis
 
Sistemi Context-aware: Esercitazione 3
Sistemi Context-aware: Esercitazione 3Sistemi Context-aware: Esercitazione 3
Sistemi Context-aware: Esercitazione 3Marco Loregian
 
Linux Day 2014 - Napoli - Programma Il Futuro: una scelta open source
Linux Day 2014 - Napoli - Programma Il Futuro: una scelta open sourceLinux Day 2014 - Napoli - Programma Il Futuro: una scelta open source
Linux Day 2014 - Napoli - Programma Il Futuro: una scelta open sourceMario Rossano
 
Programma il futuro: una scelta open source
Programma il futuro: una scelta open sourceProgramma il futuro: una scelta open source
Programma il futuro: una scelta open sourceMarco Ferrigno
 
GWT Development for Handheld Devices
GWT Development for Handheld DevicesGWT Development for Handheld Devices
GWT Development for Handheld DevicesGWTcon
 
Applicazioni web based
Applicazioni web basedApplicazioni web based
Applicazioni web basedMarco Liverani
 
Esposizione RIA
Esposizione RIAEsposizione RIA
Esposizione RIAdiodorato
 
Sviluppo di un'applicazione ibrida su dispositivo mobile per l'interfacciamen...
Sviluppo di un'applicazione ibrida su dispositivo mobile per l'interfacciamen...Sviluppo di un'applicazione ibrida su dispositivo mobile per l'interfacciamen...
Sviluppo di un'applicazione ibrida su dispositivo mobile per l'interfacciamen...Mattia De Bernardi
 
Presentazione Wap Vs I Mode
Presentazione Wap Vs I ModePresentazione Wap Vs I Mode
Presentazione Wap Vs I Modemasso87
 
Programma il futuro : una scelta Open Source
Programma il futuro : una scelta Open SourceProgramma il futuro : una scelta Open Source
Programma il futuro : una scelta Open SourceNaLUG
 
Lezione 11 del 13 marzo 2012 - L'ECOSISTEMA DELLE APPS
Lezione 11 del 13 marzo 2012 - L'ECOSISTEMA DELLE APPSLezione 11 del 13 marzo 2012 - L'ECOSISTEMA DELLE APPS
Lezione 11 del 13 marzo 2012 - L'ECOSISTEMA DELLE APPSGianluigi Cogo
 
Email marketing and Web 2.0 - Email Power 2007
Email marketing and Web 2.0 - Email Power 2007Email marketing and Web 2.0 - Email Power 2007
Email marketing and Web 2.0 - Email Power 2007Alberto Giusti
 
Il web e la sua evoluzione
Il web e la sua evoluzioneIl web e la sua evoluzione
Il web e la sua evoluzioneNino Lopez
 
Presentazione tesi multitouch
Presentazione tesi multitouch Presentazione tesi multitouch
Presentazione tesi multitouch Pier Giuliano Nioi
 
Presentazione: Sviluppo di un hub di comunicazione in una applicazione per po...
Presentazione: Sviluppo di un hub di comunicazione in una applicazione per po...Presentazione: Sviluppo di un hub di comunicazione in una applicazione per po...
Presentazione: Sviluppo di un hub di comunicazione in una applicazione per po...gwalter85
 
Sviluppo di servizi REST per Android - Luca Masini
Sviluppo di servizi REST per Android - Luca Masini Sviluppo di servizi REST per Android - Luca Masini
Sviluppo di servizi REST per Android - Luca Masini Whymca
 
SVILUPPO DI SERVIZI REST PER ANDROID
SVILUPPO DI SERVIZI REST PER ANDROIDSVILUPPO DI SERVIZI REST PER ANDROID
SVILUPPO DI SERVIZI REST PER ANDROIDLuca Masini
 
Funzionalità e portabilità dei sistemi operativi per piattaforme mobili
Funzionalità e portabilità dei sistemi operativi per piattaforme mobiliFunzionalità e portabilità dei sistemi operativi per piattaforme mobili
Funzionalità e portabilità dei sistemi operativi per piattaforme mobiliNicola Losito
 
Sviluppo di un'applicazione ibrida su dispositivo mobile per l'interfacciamen...
Sviluppo di un'applicazione ibrida su dispositivo mobile per l'interfacciamen...Sviluppo di un'applicazione ibrida su dispositivo mobile per l'interfacciamen...
Sviluppo di un'applicazione ibrida su dispositivo mobile per l'interfacciamen...Mattia De Bernardi
 

Semelhante a Asynchronous Java ME and XML (20)

Presentazione Suite Nethesis
Presentazione Suite NethesisPresentazione Suite Nethesis
Presentazione Suite Nethesis
 
Sistemi Context-aware: Esercitazione 3
Sistemi Context-aware: Esercitazione 3Sistemi Context-aware: Esercitazione 3
Sistemi Context-aware: Esercitazione 3
 
Linux Day 2014 - Napoli - Programma Il Futuro: una scelta open source
Linux Day 2014 - Napoli - Programma Il Futuro: una scelta open sourceLinux Day 2014 - Napoli - Programma Il Futuro: una scelta open source
Linux Day 2014 - Napoli - Programma Il Futuro: una scelta open source
 
Programma il futuro: una scelta open source
Programma il futuro: una scelta open sourceProgramma il futuro: una scelta open source
Programma il futuro: una scelta open source
 
GWT Development for Handheld Devices
GWT Development for Handheld DevicesGWT Development for Handheld Devices
GWT Development for Handheld Devices
 
HTML5, il lato client della forza...
HTML5, il lato client della forza... HTML5, il lato client della forza...
HTML5, il lato client della forza...
 
Applicazioni web based
Applicazioni web basedApplicazioni web based
Applicazioni web based
 
Esposizione RIA
Esposizione RIAEsposizione RIA
Esposizione RIA
 
Sviluppo di un'applicazione ibrida su dispositivo mobile per l'interfacciamen...
Sviluppo di un'applicazione ibrida su dispositivo mobile per l'interfacciamen...Sviluppo di un'applicazione ibrida su dispositivo mobile per l'interfacciamen...
Sviluppo di un'applicazione ibrida su dispositivo mobile per l'interfacciamen...
 
Presentazione Wap Vs I Mode
Presentazione Wap Vs I ModePresentazione Wap Vs I Mode
Presentazione Wap Vs I Mode
 
Programma il futuro : una scelta Open Source
Programma il futuro : una scelta Open SourceProgramma il futuro : una scelta Open Source
Programma il futuro : una scelta Open Source
 
Lezione 11 del 13 marzo 2012 - L'ECOSISTEMA DELLE APPS
Lezione 11 del 13 marzo 2012 - L'ECOSISTEMA DELLE APPSLezione 11 del 13 marzo 2012 - L'ECOSISTEMA DELLE APPS
Lezione 11 del 13 marzo 2012 - L'ECOSISTEMA DELLE APPS
 
Email marketing and Web 2.0 - Email Power 2007
Email marketing and Web 2.0 - Email Power 2007Email marketing and Web 2.0 - Email Power 2007
Email marketing and Web 2.0 - Email Power 2007
 
Il web e la sua evoluzione
Il web e la sua evoluzioneIl web e la sua evoluzione
Il web e la sua evoluzione
 
Presentazione tesi multitouch
Presentazione tesi multitouch Presentazione tesi multitouch
Presentazione tesi multitouch
 
Presentazione: Sviluppo di un hub di comunicazione in una applicazione per po...
Presentazione: Sviluppo di un hub di comunicazione in una applicazione per po...Presentazione: Sviluppo di un hub di comunicazione in una applicazione per po...
Presentazione: Sviluppo di un hub di comunicazione in una applicazione per po...
 
Sviluppo di servizi REST per Android - Luca Masini
Sviluppo di servizi REST per Android - Luca Masini Sviluppo di servizi REST per Android - Luca Masini
Sviluppo di servizi REST per Android - Luca Masini
 
SVILUPPO DI SERVIZI REST PER ANDROID
SVILUPPO DI SERVIZI REST PER ANDROIDSVILUPPO DI SERVIZI REST PER ANDROID
SVILUPPO DI SERVIZI REST PER ANDROID
 
Funzionalità e portabilità dei sistemi operativi per piattaforme mobili
Funzionalità e portabilità dei sistemi operativi per piattaforme mobiliFunzionalità e portabilità dei sistemi operativi per piattaforme mobili
Funzionalità e portabilità dei sistemi operativi per piattaforme mobili
 
Sviluppo di un'applicazione ibrida su dispositivo mobile per l'interfacciamen...
Sviluppo di un'applicazione ibrida su dispositivo mobile per l'interfacciamen...Sviluppo di un'applicazione ibrida su dispositivo mobile per l'interfacciamen...
Sviluppo di un'applicazione ibrida su dispositivo mobile per l'interfacciamen...
 

Último

Luigi Di Carlo, CEO & Founder @Evometrika srl – “Ruolo della computer vision ...
Luigi Di Carlo, CEO & Founder @Evometrika srl – “Ruolo della computer vision ...Luigi Di Carlo, CEO & Founder @Evometrika srl – “Ruolo della computer vision ...
Luigi Di Carlo, CEO & Founder @Evometrika srl – “Ruolo della computer vision ...Associazione Digital Days
 
Federico Bottino, Lead Venture Builder – “Riflessioni sull’Innovazione: La Cu...
Federico Bottino, Lead Venture Builder – “Riflessioni sull’Innovazione: La Cu...Federico Bottino, Lead Venture Builder – “Riflessioni sull’Innovazione: La Cu...
Federico Bottino, Lead Venture Builder – “Riflessioni sull’Innovazione: La Cu...Associazione Digital Days
 
Alessio Mazzotti, Aaron Brancotti; Writer, Screenwriter, Director, UX, Autore...
Alessio Mazzotti, Aaron Brancotti; Writer, Screenwriter, Director, UX, Autore...Alessio Mazzotti, Aaron Brancotti; Writer, Screenwriter, Director, UX, Autore...
Alessio Mazzotti, Aaron Brancotti; Writer, Screenwriter, Director, UX, Autore...Associazione Digital Days
 
Daniele Lunassi, CEO & Head of Design @Eye Studios – “Creare prodotti e servi...
Daniele Lunassi, CEO & Head of Design @Eye Studios – “Creare prodotti e servi...Daniele Lunassi, CEO & Head of Design @Eye Studios – “Creare prodotti e servi...
Daniele Lunassi, CEO & Head of Design @Eye Studios – “Creare prodotti e servi...Associazione Digital Days
 
Gabriele Mittica, CEO @Corley Cloud – “Come creare un’azienda “nativa in clou...
Gabriele Mittica, CEO @Corley Cloud – “Come creare un’azienda “nativa in clou...Gabriele Mittica, CEO @Corley Cloud – “Come creare un’azienda “nativa in clou...
Gabriele Mittica, CEO @Corley Cloud – “Come creare un’azienda “nativa in clou...Associazione Digital Days
 
Programma Biennale Tecnologia 2024 Torino
Programma Biennale Tecnologia 2024 TorinoProgramma Biennale Tecnologia 2024 Torino
Programma Biennale Tecnologia 2024 TorinoQuotidiano Piemontese
 
Alessandro Nasi, COO @Djungle Studio – “Cosa delegheresti alla copia di te st...
Alessandro Nasi, COO @Djungle Studio – “Cosa delegheresti alla copia di te st...Alessandro Nasi, COO @Djungle Studio – “Cosa delegheresti alla copia di te st...
Alessandro Nasi, COO @Djungle Studio – “Cosa delegheresti alla copia di te st...Associazione Digital Days
 
Mael Chiabrera, Software Developer; Viola Bongini, Digital Experience Designe...
Mael Chiabrera, Software Developer; Viola Bongini, Digital Experience Designe...Mael Chiabrera, Software Developer; Viola Bongini, Digital Experience Designe...
Mael Chiabrera, Software Developer; Viola Bongini, Digital Experience Designe...Associazione Digital Days
 
Edoardo Di Pietro – “Virtual Influencer vs Umano: Rubiamo il lavoro all’AI”
Edoardo Di Pietro – “Virtual Influencer vs Umano: Rubiamo il lavoro all’AI”Edoardo Di Pietro – “Virtual Influencer vs Umano: Rubiamo il lavoro all’AI”
Edoardo Di Pietro – “Virtual Influencer vs Umano: Rubiamo il lavoro all’AI”Associazione Digital Days
 

Último (9)

Luigi Di Carlo, CEO & Founder @Evometrika srl – “Ruolo della computer vision ...
Luigi Di Carlo, CEO & Founder @Evometrika srl – “Ruolo della computer vision ...Luigi Di Carlo, CEO & Founder @Evometrika srl – “Ruolo della computer vision ...
Luigi Di Carlo, CEO & Founder @Evometrika srl – “Ruolo della computer vision ...
 
Federico Bottino, Lead Venture Builder – “Riflessioni sull’Innovazione: La Cu...
Federico Bottino, Lead Venture Builder – “Riflessioni sull’Innovazione: La Cu...Federico Bottino, Lead Venture Builder – “Riflessioni sull’Innovazione: La Cu...
Federico Bottino, Lead Venture Builder – “Riflessioni sull’Innovazione: La Cu...
 
Alessio Mazzotti, Aaron Brancotti; Writer, Screenwriter, Director, UX, Autore...
Alessio Mazzotti, Aaron Brancotti; Writer, Screenwriter, Director, UX, Autore...Alessio Mazzotti, Aaron Brancotti; Writer, Screenwriter, Director, UX, Autore...
Alessio Mazzotti, Aaron Brancotti; Writer, Screenwriter, Director, UX, Autore...
 
Daniele Lunassi, CEO & Head of Design @Eye Studios – “Creare prodotti e servi...
Daniele Lunassi, CEO & Head of Design @Eye Studios – “Creare prodotti e servi...Daniele Lunassi, CEO & Head of Design @Eye Studios – “Creare prodotti e servi...
Daniele Lunassi, CEO & Head of Design @Eye Studios – “Creare prodotti e servi...
 
Gabriele Mittica, CEO @Corley Cloud – “Come creare un’azienda “nativa in clou...
Gabriele Mittica, CEO @Corley Cloud – “Come creare un’azienda “nativa in clou...Gabriele Mittica, CEO @Corley Cloud – “Come creare un’azienda “nativa in clou...
Gabriele Mittica, CEO @Corley Cloud – “Come creare un’azienda “nativa in clou...
 
Programma Biennale Tecnologia 2024 Torino
Programma Biennale Tecnologia 2024 TorinoProgramma Biennale Tecnologia 2024 Torino
Programma Biennale Tecnologia 2024 Torino
 
Alessandro Nasi, COO @Djungle Studio – “Cosa delegheresti alla copia di te st...
Alessandro Nasi, COO @Djungle Studio – “Cosa delegheresti alla copia di te st...Alessandro Nasi, COO @Djungle Studio – “Cosa delegheresti alla copia di te st...
Alessandro Nasi, COO @Djungle Studio – “Cosa delegheresti alla copia di te st...
 
Mael Chiabrera, Software Developer; Viola Bongini, Digital Experience Designe...
Mael Chiabrera, Software Developer; Viola Bongini, Digital Experience Designe...Mael Chiabrera, Software Developer; Viola Bongini, Digital Experience Designe...
Mael Chiabrera, Software Developer; Viola Bongini, Digital Experience Designe...
 
Edoardo Di Pietro – “Virtual Influencer vs Umano: Rubiamo il lavoro all’AI”
Edoardo Di Pietro – “Virtual Influencer vs Umano: Rubiamo il lavoro all’AI”Edoardo Di Pietro – “Virtual Influencer vs Umano: Rubiamo il lavoro all’AI”
Edoardo Di Pietro – “Virtual Influencer vs Umano: Rubiamo il lavoro all’AI”
 

Asynchronous Java ME and XML

  • 1. Lo Asynchronous Java ME and XML Andrea Castello http://javame-cinghius.blogspot.com [email_address]
  • 2. Sommario (1) - Dal Web al Web 2.0 - Dal WML agli Smart Client - Ajax, Comet: modelli applicativi - Java ME: visione d'insieme e specifiche MSA (JSR-248)
  • 3.
  • 4.
  • 5.
  • 6. - Cosa è veramente? Difficile identificarlo monoliticamente. - T. O'Reilly (sett 05): Napster fa parte del Web 2.0!! - Vera innovazione E fenomeno di marketing. - Approcio decentralizzato : nuovo sistema di vedere il web come mezzo di comunicazione. I fatti: nuovi servizi vengono creati continuamente: (Google Maps, Suggest, Writely, Widgets/Widsets, feed readers, Flickr, YouTube, Blogger) anche in versione “ Mashup ” (combinata), spesso in beta. Web 2.0: una considerazione
  • 7.
  • 8. Utenti internet 1999 (stima) - >=90% connessi dial up fino a 56 kbit/sec - <=10% connessi ADSL fino a 640 kbit/sec 2004 (Nielsen/ NetRatings) - ~47% utenti italiani connessi ad alta velocità (7,9 mln, <13% della popolazione). La banda larga è stata essenziale per la diffusione dei servizi “Web 2.0” Web 2.0: more bandwidth, please!!
  • 9. “ Sistema operativo” browser-based (Web OS) con molte funzionalità Mix di Ajax, Flash, Java Applet (Port scanner, FTP client, Paint) Web 2.0: EyeOS
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15. Ajax: il modello applicativo
  • 16.
  • 17. Java ME: visione d'insieme
  • 18.
  • 19.
  • 20.
  • 21. Blogger feed search: l'ispirazione...
  • 22.
  • 23.
  • 24. Bfs: estendiamo GameCanvas final public void run(){ [...] // Gestione tasti in modalità “gaming” if (gameKeyEventsEnabled){ handleGamingKeys(); } // “Invita” a ridisegnare lo schermo con //le relative modifiche grafiche. repaint(0, 0, width, height); // Obbliga ad eseguire immediatamente // qualunque richiesta di repaint // ancora in attesa. serviceRepaints(); [...] }
  • 25.
  • 26.
  • 27.
  • 28. HttpGet: dentro il run() synchronized ( this ){ // Se non vi sono richieste pendenti si aspetta... while (queryStrings.size() == 0){ try { wait(); } catch (InterruptedException e){ } [...] } request = (String)(queryStrings.elementAt(0)); listener = (ConnectionListener)listeners.elementAt(0); [...] } sendRequest(request, listener); sendRequest effettua la connessione vera e propria. Il listener è la classe che gestisce i dati della response HTTP
  • 29. HttpGet: la connessione try{ conn = (HttpConnection)Connector.open(url+request); conn.setRequestMethod(HttpConnection.GET); in = conn.openDataInputStream(); rc = conn.getResponseCode(); if (rc != HttpConnection.HTTP_OK){ // gestione errore... } if(!errorOccurred){ listener.handleData(in); } } catch (Exception e){ [...] } finally{ // chiusura connessione... }
  • 30.
  • 31.
  • 32.
  • 35. Mettiamo tutto insieme! (o quasi...)
  • 36. Blogger feed search: il risultato! ...su emulatore (SE W810i) e dispositivo reale (Nokia 6600)
  • 37.
  • 38. Modello asincrono: le prestazioni ¹: dato influenzato da prima autorizzazione dell'utente *: necessaria ogni volta un'autorizzazione dell'utente
  • 39.
  • 40.
  • 41.

Notas do Editor

  1. Insert your notes here.