Sistemi Mobili e Wireless Android - Servizi



Похожие документы
Sistemi Mobili e Wireless Android Activity

Sistemi Mobili e Wireless Android Primi passi

Sistemi Mobili e Wireless Android - Dati persistenti: SQLite

Android. Ciclo di vita di Activity, Service e Processi

Registratori di Cassa

Sistemi Mobili e Wireless Android Localizzazione utente

MODELLO CLIENT/SERVER. Gianluca Daino Dipartimento di Ingegneria dell Informazione Università degli Studi di Siena

Client - Server. Client Web: il BROWSER

Con il termine Sistema operativo si fa riferimento all insieme dei moduli software di un sistema di elaborazione dati dedicati alla sua gestione.

T E O R I A D I P R O G E T T A Z I O N E D E L S O F T W A R E

CitySoftware PROTOCOLLO. Info-Mark srl

Tipi primitivi. Ad esempio, il codice seguente dichiara una variabile di tipo intero, le assegna il valore 5 e stampa a schermo il suo contenuto:

Pronto Esecuzione Attesa Terminazione

Inizializzazione degli Host. BOOTP e DHCP

Comunicazione tra Computer. Protocolli. Astrazione di Sottosistema di Comunicazione. Modello di un Sottosistema di Comunicazione

GUIDA ALL INVIO DEI FILE COL TFR AD INPDAP

Import Sisam. Manuale utente. Maggio Sistema di raccolta dei dati statistici in ambito Socio-Assistenziale Minori

Android. Anatomia di una applicazione

Gestionale CIA. -Contabilizzazione movimenti-

connessioni tra i singoli elementi Hanno caratteristiche diverse e sono presentati con modalità diverse Tali relazioni vengono rappresentate QUINDI

Gestione del processore e dei processi

Introduzione alle applicazioni di rete

MArine Coastal Information SysTEm

Elementi di UML (7): Diagrammi dei componenti e di deployment

Trasmissione di dati al di fuori di un area locale avviene tramite la commutazione

MUDE Piemonte. Modalità operative generazione Procura speciale

Come funziona il WWW. Architettura client-server. Web: client-server. Il protocollo

EasyPrint v4.15. Gadget e calendari. Manuale Utente

POSTA ELETTRONICA CERTIFICATA Manuale operativo. Manuale operativo Posta Elettronica Certificata (PEC) del Comune di Como

Servizi di Sviluppo e Manutenzione Software. Manuale Utente. Invio TFR a INPDAP Utente Scuola

Ingegneria del Software 11. Esercizi riassuntivi. Dipartimento di Informatica Università di Pisa A.A. 2014/15

Informatica 3. LEZIONE 7: Fondamenti di programmazione orientata agli oggetti (1)

Software di interfacciamento sistemi gestionali Manuale di installazione, configurazione ed utilizzo

Cenni di programmazione distribuita in C++ Mauro Piccolo

Programmazione A.A Programmazione Orientata agli Oggetti: Lavorare con gli oggetti ( Lezione XXVII)

Diagrammi di Interazione

Processo civile telematico. Nozioni di base e decreto ingiuntivo

Programmazione dei socket con TCP #2

I Thread. I Thread. I due processi dovrebbero lavorare sullo stesso testo

Esempio 1: CarMatch. Direzione centrale Sedi centrali per ogni paese Concessionarie locali di franchising UML 2

Guida all uso delle Web View su ios

G l o b a l M o b i l e S i s t e m a d i t e l e c o n t r o l l o G P S s u G S M / G P R S

Capitolo 3. L applicazione Java Diagrammi ER. 3.1 La finestra iniziale, il menu e la barra pulsanti

COME CONFIGURARE UN CLIENT DI POSTA

Corso di Automazione industriale

INTERNET e RETI di CALCOLATORI A.A. 2011/2012 Capitolo 4 DHCP Dynamic Host Configuration Protocol Fausto Marcantoni fausto.marcantoni@unicam.

Registrazione nuovo utente. Per registrare un nuovo utente cliccare sul link Registrazione

GESTIONE DEI PROCESSI

Indice. Indice. 1. Come accedere all'area riservata. 2. Modifica delle informazioni personali. 3. Inserimento e modifica dei necrologi. 4.

DINAMIC LIGHT PLUS Principali modifiche introdotte con la versione 4.75 Giugno 2011

Ministero della Giustizia

Strumenti per il testing di applicazioni in ambiente Android

DUAL MODE guida_alb :00 Pagina 1 GUIDA PER LA CONFIGURAZIONE E L USO DEL SERVIZIO

A intervalli regolari ogni router manda la sua tabella a tutti i vicini, e riceve quelle dei vicini.

Verifica Firma Digitale dei documenti

1. GESTIONE DEL PASS OE FUNZIONI DEL CRUSCOTTO

Software per Helpdesk

1 Processo, risorsa, richiesta, assegnazione 2 Concorrenza 3 Grafo di Holt 4 Thread 5 Sincronizzazione tra processi

Attivazione prodotto - Release 2 (2011) Prodotto Attivazione prodotto. Release

WBT Authoring. Web Based Training STUDIO

Real Time Control (RTC): modalità di invio dei dati

Guida iscrizione Community. istruzione.social.marche.it

Guida alla registrazione on-line di un NovaSun Log

SPORTELLO UNICO DELLE ATTIVITÀ PRODUTTIVE MANUALE OPERATIVO FUNZIONI DI PAGAMENTO ONLINE. Versione 05

RIFERIMENTI ATTORI GLOSSARIO. ERRORI COMUNI REV. REQUISITI INGEGNERIA DEL SOFTWARE Università degli Studi di Padova

GALILEO. [OFR] - Progetto GALILEO - How to contabilità. How To Contabilità G.ALI.LE.O. How To Contabilità. pag. 1 di 23.

InitZero s.r.l. Via P. Calamandrei, Arezzo

PAGAMENTO FERIE anno 2013 protocollo fittizio data di protocollo Competenza dal Competenza al spunta su liquidazione ferie SA/Sc

GLI APPARATI PER L INTERCONNESSIONE DI RETI LOCALI 1. Il Repeater 2. L Hub 2. Il Bridge 4. Lo Switch 4. Router 6

SPORTELLO UNICO DELLE ATTIVITÀ PRODUTTIVE MANUALE OPERATIVO FUNZIONI DI SCRIVANIA PER GLI UFFICI SUAP

Utilizzo della APP IrriframeVoice. Versione 1.0 maggio 2015

I DATABASE Database relazionale

Mutua esclusione distribuita

Telematica II 17. Esercitazione/Laboratorio 6

GUIDA ALL UTILIZZO DEL PORTALE DELLA RETE DEI COMUNI OGLIO PO

Fatturazione elettronica con WebCare

Gestione Risorse Umane Web

Corso di Laurea in Matematica. Seminario C/C++ Lorenzo Dusty Costa. Università degli Studi di Milano Dipartimento di Matematica

Modellazione dei dati in UML

Sistema operativo: Gestione dei processi

EXCEL PER WINDOWS95. sfruttare le potenzialità di calcolo dei personal computer. Essi si basano su un area di lavoro, detta foglio di lavoro,

LA CASELLA PEC Dipartimentale

MANUALE PARCELLA FACILE PLUS INDICE

CROSSROAD. Gestione TENTATA VENDITA. Introduzione. Caratteristiche generali. Principali funzionalità modulo supervisore

RICHIESTA PRESTAZIONI CASSA EDILE DI MILANO

SCUOLANEXT GUIDA APP DIDUP DEL 28/02/2015

FPf per Windows 3.1. Guida all uso

RE Genitori e Alunni

Per scrivere una procedura che non deve restituire nessun valore e deve solo contenere le informazioni per le modalità delle porte e controlli

Транскрипт:

Sistemi Mobili e Wireless Android - Servizi Stefano Burigat Dipartimento di Matematica e Informatica Università di Udine www.dimi.uniud.it/burigat stefano.burigat@uniud.it

Servizi Un servizio è un componente di un'applicazione Android che permette di svolgere operazioni in background, senza interazione con l'utente (non è dotato di interfaccia) Esistono due tipi principali di servizi: un servizio started svolge qualche operazione (ad es., download di un file), gira indipendentemente dal componente che l'ha chiamato, e solitamente non ritorna alcun risultato un servizio bound permette la comunicazione e lo scambio di dati con il client che l'ha chiamato 2

Servizi I servizi girano nel thread principale del processo che li ospita se il servizio fa operazioni costose o bloccanti, è meglio creare thread secondari per svolgerle Ogni servizio deve avere una dichiarazione <service> all'interno del file manifest dell'applicazione 3

Servizi Indipendentemente dal tipo, per creare un servizio si estende la classe Service (o una sua sottoclasse) e si fa l'override di alcuni suoi metodi Per creare un servizio started è necessario fare l'override di onstartcommand() e far partire il servizio tramite il metodo startservice() Per creare un servizio bound è necessario fare l'override di onbind() e associarsi al servizio tramite il metodo bindservice() E' anche possibile creare un servizio che può funzionare sia come servizio started che come servizio bound, semplicemente implementando entrambi i metodi 4

Servizi started Questo codice viene eseguito se si attiva il servizio tramite bindservice() Questo codice viene eseguito prima di onbind() o onstartcommand() (una sola volta anche se startservice o bindservice vengono chiamati più volte) Questo codice viene eseguito se si attiva il servizio tramite startservice() ricarica il servizio in caso di sua uccisione improvvisa (ad esempio, a causa di un crash) 5

Servizi started Un servizio viene chiamato tramite Intent (per ragioni di sicurezza va sempre usato un Intent esplicito) Se si attiva un servizio tramite startservice(), bisogna fermarlo tramite stopservice() (o il servizio stesso può chiamare stopself()) 6

Servizi started main.xml manifest.xml Dichiarazione del servizio 7

Servizi started 8

IntentService Se non è necessario che un servizio gestisca richieste multiple contemporaneamente, è possibile crearlo utilizzando la classe IntentService al posto della classe Service Un IntentService è una sottoclasse di Service che crea automaticamente un thread per gestire in modo sequenziale le richieste che arrivano Per creare un IntentService è necessario implementare il metodo onhandleintent(), al quale verrà passato l'intent utilizzato per far partire il servizio 9

IntentService Un IntentService svolge le seguenti operazioni: Crea un thread separato dal main thread per l'esecuzione del codice Crea una coda di lavoro che passa un Intent alla volta al metodo onhandleintent() Ferma il servizio una volta che tutte le richieste sono state gestite (non serve chiamare stopself()) Fornisce un'implementazione di default di onbind() che ritorna null Fornisce un'implementazione di default di onstartcommand() che invia l'intent alla coda di lavoro e quindi al metodo onhandleintent() 10

IntentService Implementazione di un servizio tramite IntentService 11

IntentService Se è necessario fare l'override di altri metodi come oncreate(), onstartcommand() o ondestroy(), è necessario chiamare l'implementazione della classe base L'unico metodo, oltre a onhandleintent(), per il quale non è necessario chiamare la classe base è onbind() 12

Servizi bound Se si vuole interagire con un servizio, inviando richieste ed ottenendo risultati (anche tra processi diversi), è necessario creare un servizio bound più componenti possono fare il binding allo stesso servizio un servizio bound viene distrutto quando non rimangono componenti ad esso legati (si usa unbindservice() per slegarsi) è anche possibile fare il binding ad un servizio che è stato attivato tramite startservice() L'implementazione di onbind() deve tornare un oggetto di tipo IBinder tipicamente, si estende la classe Binder e al suo interno si specificano i metodi che verranno poi utilizzati dal componente che ha fatto il binding al servizio per poter comunicare con il servizio stesso 13

Servizi bound Lo scenario più comune di utilizzo di un servizio bound è quello in cui il servizio e il client che lo utilizza fanno entrambi parte della stessa applicazione e dello stesso processo In tal caso, si procede nel modo seguente: All'interno del service, creare un'istanza di Binder che contiene metodi pubblici che il client può chiamare, oppure ritorna l'istanza corrente del service, contenente metodi pubblici che il client può chiamare, oppure ritorna un'istanza di un'altra classe interna al service che contiene metodi pubblici chiamabili dal client Ritornare l'istanza del Binder all'interno di onbind() Nel client, chiamare i metodi pubblici attraverso l'istanza del Binder ricevuta all'interno del metodo onserviceconnected() 14

Servizi bound definizione della sottoclasse di Binder definizione del servizio che verrà attivato tramite binding (viene implementato solo onbind che ritorna un riferimento ad un oggetto di tipo Binder) 15

Servizi bound oggetto di tipo ServiceConnection (si veda prossima slide) che serve a gestire la connessione con il service 16

Servizi bound esempio di chiamata di un metodo del service chiamato da Android quando il binding del service è avvenuto 17