Sto scrivendo un app Android, che è in grado di esportare lo stato attuale di un Activity
o Fragment
ad un JSON-file, che ha il seguente formato comune:Android/Java comune JSON interfaccia importazione
{
"data": {
"result": {
<content depends on specific class>
},
"input": {
<content depends on specific class>
}
},
"identifier": <identifier depends on specific class>,
"version": 1
}
Ciò significa che Activities
/Fragments
che hanno la possibilità di esportare compilare i contenuti contrassegnati implementando un'interfaccia che ho chiamato "Esportabile" e la funzione di esportazione globale chiama i metodi definiti nell'interfaccia. Questa è una soluzione diretta che funziona abbastanza bene.
Fin qui tutto bene. Ora voglio fare la direzione inversa. Voglio caricare un file e chiamare il corrispondente Activity
/Fragment
dipendente dal contenuto dell'identificatore.
La lettura del contenuto dell '"input" e del "risultato" deve essere effettuata con un metodo dello stesso Activity
/Fragment
.
Purtroppo questo non è ovvio per me come risolvere questo problema in modo elegante. Qual è il modo migliore per farlo? La soluzione deve essere il più astratta possibile in modo che possa essere facilmente estesa.
Che cosa accade usando ['SharedPreferences'] (http://developer.android.com/guide/topics/data/data-storage.html#pref) per salvare e ripristinare lo stato' Activity'? Questo sopravvive anche al riavvio dell'applicazione/dispositivo. Se si desidera mantenere uno stato di breve durata (rotazione del dispositivo, sfondo), è possibile utilizzare il sistema integrato ['SavedInstanceState'' Bundle'] (http://developer.android.com/training/basics/activity- ciclo di vita/recreating.html). –