Perchè il titolo è "Applicazione in background" se la discussione verte sul salvataggio di dati in chiusura dell'app?
Ad ogni modo, esistono diversi modi per "salvare informazioni" all'interno di una App Android... il più semplice consiste nell'usare le SharedPreferences (un meccanismo "nativo" di Android).
Va ridefinito il metodo onPause() dell'Activity (perchè tale metodo è il primo che viene chiamato appena prima della chiusura dell'Activity stessa... poi possono essere chiamati onStop() e onDestroy(), ma da quel che so possono anche non venire chiamati se è il sistema a killare l'Activity, quindi onPause() è sicuramente il posto migliore in cui fare l'operazione) e al suo interno si deve ottenere l'oggetto SharedPreferences.
codice:
@Override
public void onPause() {
// Ottengo l'oggetto SharedPreferences che io decido di chiamare "pippo", di tipo privato
SharedPreferences pref = getSharedPreferences("pippo", MODE_PRIVATE);
//Ottengo l'editor delle SharedPreferences
Editor editor = pref.edit();
// Ci scrivo dentro il valore String che voglio salvare (la mia variabile "pippoStr")
editor.putString("miaStringa", pippoStr);
... // Ci posso scrivere tutte le cose che voglio
// Effettuo il commit delle modifiche
editor.commit();
}
Le SharedPreferences sono un sistema semplice da usare: memorizzano una serie di coppie chiave -> valore per qualunque tipo "primitivo" più stringhe e Set<String>.
Le SharedPreferences possono essere di diverse tipologie: l'esempio che ho fatto io ottiene (e crea se non esiste) una SharedPreference chiamata "pippo" di tipo "privato" (accessibile, cioè, solo da quella Activity). La documentazione è più che esaustiva su queste cose.
Per andare a ripescare i dati al successivo avvio della Activity è sufficiente ri-ottenere l'oggetto SharedPreferences e tramite i relativi metodi getter ottenere le informazioni che si sono precedentemente salvate in esso.
Ciao.