Salve a tutti,
Ho un problema che fatico a risolvere,
Il quadro generale:
ho un'activity che gestisce la fotocamera, mostra la preview e permette di scattare una foto. Questa activity ha anche un handler come variabile d'istanza.
Quando l'utente scatta una foto (la preview si ferma) l'activity fa comparire una progressbar (ProgressDialog) e intanto manda tale foto ad un thread che si mette a fare calcoli su calcoli, quando il thread ha finito il suo lavoro manda un messaggio all'handler dell'activity ( tramite sendMessage(Message msg) ) il quale invoca dismiss() sulla progressbar e fa terminare l'activity con esito positivo o meno rispetto ai calcoli.
Il tutto funziona senza problemi... finché non si ruota lo schermo (dopo aver scattato la foto)
Appena si ruota lo schermo, se ho ben capito, viene chiamato nuovamente l'onCreate dell'activity, qui iniziano i disastri:
la progressbar sparisce, rinizia la preview della fotocamera ed infine la mia applicazione viene drasticamente killata quando il thread cerca di mandare il messaggio all'handler.
Quindi ho svariate domande a riguardo:
1) quando si ruota lo schermo tutte le variabili d'istanza vengono resettate?
2) dovrei dunque salvarmi l'handler, la progressbar e la camera?
3) ho visto che il metodo onSaveInstanceState serve appunto per salvare lo stato, ma guardando cosa può essere messo nel Bundle tramite i metodi put[...] non ho trovato niente che prendesse Object, solo tipi primitivi e stringhe, come posso fare?
Grazie.