Alarms PermeCono di eseguire intent in funzione di specifici evenh 107 Un applicazione che usa un alarm riesce ad eseguire porzioni di codice anche se l applicazione è terminata Un alarm è alvo anche se il telefono va in modalità di sleep l alarm può causare la ripresa dell alvità oppure potrà essere geshto quando l utente rimece il telefono in modalità normale Alarms 108 Gli alarms rimangono alvi fino a quando vengono cancellah la periferica viene spenta Esempi di alarms app per gli MMS: usa alarm per controllare periodicamente i messaggi non spedih (retry scheduler) SeLngs: usa un alarm per rendere la periferica non visibile via Bluetooth dopo un determinato tempo 1
Alarms 109 Per usare gli alarm in un app AlarmManager OCenere un riferimento all AlarmManager: getsystemservice(context.alarm_service) Creare alarms void set(int type, long triggerattime, PendingIntent i) void setrepeahng( ) A parhre dall API level 19 (KitKat) gli alarm non sono esal : il SO operahvo può modificare i triggertime per minimizzare wakeups e l uso della baceria FrammenH (API level 11) Interfacce utente dinamiche si adacano facilmente a schermi di grandezze varie 110 Frammento rappresenta una porzione di UI una sorta di sub- alvità ha il suo layout ha il suo ciclo di vita ALvità può avere uno o più frammenh è facile inserire/rimuovere frammenh 2
FrammenH Situazione Hpica in cui sono uhli i frammenh un app che uhlizza una lista e per ogni elemento della lista dei decagli 111 FrammenH Un frammento deve sempre essere ospitato da un alvità 112 Può essere inserito stahcamente (nel layout file) dinamicamente (con il FragmentManager) Quando il frammento viene inserito diventa un ViewGroup all interno della View dell alvità Ciclo di vita dei frammenh legato a quello dell alvità che lo ospita 3
FrammenH 113 FrammenH 114 A(vità Frammento 4
FrammenH 115 FragmentsExample hcp://developer.android.com/guide/components/fragments.html 116 Socket Java.net HTTP org.apache HCpRequest HCpresponse Data formats JSON, XML 5
117 Classe InetAddress permece di geshre gli indirizzi IP InetAddress.getByName( www.server.com ); InetAddress.getByName( 11.22.33.44 ); ResHtuisce l indirizzo IP stringa di 32 bit per IPv4 stringa di 128 bit per IPv6 118 classe Socket crea il canale di comunicazione con il server Socket(InetAddress addr, int port) socket = new Socket(serverAddr, port); Per leggere e scrivere getinputstream(socket) getoutputstream(socket) 6
119 Scrivere sul socket PrintWriter out = new PrintWriter( new BufferedWriter( new OutputStreamWriter( socket.getoutputstream())), true); //Autoflush out.println(strtosend); 120 Scrivere nel socket BufferedReader in = new BufferedReader( new InputStreamReader( socket.getinputstream())); in.readline(), in.read(), 7
121 SocketRaw SocketRawProgressBar URL e HTTP 122 Il trasferimento di pagine web è l operazione più comune esistono delle classi apposite HCpURLConnecHon openconnechon() getinputstream() e poi si procede come prima leggendo i dah dallo stream 8
HTTP 123 classe AndroidHCpClient classe HCpGet classe responsehandler ci permecono facilmente di stabilire una connessione HTTP inviare una richiesta GET leggere la risposta 124 SocketURL SocketHTTP 9
DocumenH HTML DaH in documenh HTML difficile estrarli 125 Esistono delle librerie che implementano il parsing di documentl HTML es. JSOUP Per uhlizzare una libreria procurarci il file.jar (es. jsoutp- 1-1.7.3.jar) memorizzarlo nella cartella lib del progeco Aggiungere il file jar nella lista delle librerie ProgeCo - > Proprietà - > Java Build Path - > Librerie JSoup 126 La classe Jsoup permece parsing di documenh HTML estrarre singoli parh del documento Esempi: Document doc = Jsoup.connect("hCp:// en.wikipedia.org/").get(); Element e = doc.getelementbyid( id ); Elements e = doc.select( [class=id ); 10
127 SocketJSoup 11