So "che questo caso è freddo", ma perché ho trovato questa discussione prima, mentre cercavo esattamente la stessa cosa (e ho trovato una risposta):
Immagina Bundle come un file XML. Se si crea un nuovo <BUNDLE name="InstanceName" type="ClassName">
è possibile aggiungere liberamente elementi e attributi in uno spazio dei nomi fresco e vuoto.
Quando onSaveInstance(Bundle outState)
della vostra MainActivity si chiama (si può anche forzare questo in), è possibile creare una nuova: Bundle b = new Bundle();
Quindi chiamare il vostro (probabilmente non ha ereditato e non sovrascritto) personalizzato Metodo onSaveInstance(Bundle b)
nella propria classe con il tuo pacchetto appena creato b. Poi (in onSaveInstance(Bundle outState)
) del vostro MainActivity, chiamare outState.putBundle("StringClassAndInstanceName", b);
Quando si trova questa stringa nella onCreate, è possibile utilizzare uno switch/case per ricreare questo oggetto o (meglio) hanno una funzione di fabbrica in classe personalizzata per lavorare con Bundle e "StringClassAndInstanceName".
Trovo che sia meno lavoro da tradurre in e da JSON, rispetto a – Arcantos
parcellizzabile suSaveInstanceState dovrebbe essere alla fine della funzione! https://developer.android.com/training/basics/activity-lifecycle/recreating.html –
Mentre questo è il modo giusto per salvare l'oggetto personalizzato in onSaveInstanceState(), dovresti assicurarti di non salvare grandi oggetti usando questo metodo . Questo è solo per salvare lo stato dello schermo. Se gli oggetti diventano grandi, c'è la possibilità che tu riceva l'eccezione "TransactionTooLargeException' – abat