AndroidProgrammazione

SQLite Volley: database esterno

La gestione di archiviazione dati viste fino a questo momento sono consigliabili per piccole quantità di dati gestite all’interno del cellulare. Se le dimensione dei dati sono notevoli o se abbiamo bisogno di accedere a dei dati salvati all’esterno del cellulare abbiamo bisogno di una nuova struttura un poco più complessa.

L’accesso alla rete è un’operazione condizionata da tempi di latenza più o meno significativi e quindi deve essere svolta in maniera asincrona. Ci viene in aiuto una libreria chiamata Volley che cura tutti gli aspetti di accesso alla rete, disponibile su GitHub.

Possiamo passare dei parametri da app all’indirizzo specificato tramite due metodi:

  • get – l’url contiene anche i parametri, esempio www.rubrica.it/cerca?id=125;
  • post – consente di inviare dati senza mostrarli nell’url;

Bisogna innanzitutto inizializzare la richiesta tramite Volley.newRequestQueue, successivamente bisogna preparare la richiesta tramite StringRequest fornendo l’url.  Per ultimo bisogna accodare la richiesta tramite il metodo add.

Ogni ogetto Request ha i riferimenti a due listener:

  • onResponse – se la richiesta ha avuto successo e contiene il risultato della richiesta;
  • onErrorResponse – se la richiesta ha generato errori e contiene l’errore generato;

Ecco un semplice esempio:

Vediamo che i parametri da passare all’indirizzo url vengono inseriti in getParams, in questo esempio il valore selMenu viene passato tramite sel_menu.

Per comunicare il risultato o l’errore viene utilizzata un’interfaccia; dove callback.onSuccess restituisce al programma chiamante  la risposta, mentre callback.onerror l’errore generato. Ecco come possiamo utilizzarlo:

Questo potrebbe essere il file php che gestisce la richiesta fatta dall’app

La funzione legge la tabella $table, i nome e cognome vengono inseriti in $resultArray che poi viene convertito in un oggetto in formato JSON.

Il progetto integrale si trova nella piattaforma GitHub.