Sto convertendo il mio codice dall'uso Handlera AsyncTask. Quest'ultimo è eccezionale in ciò che fa: aggiornamenti asincroni e gestione dei risultati nel thread dell'interfaccia utente principale. Ciò che non è chiaro per me è come gestire le eccezioni se qualcosa va in tilt AsyncTask#doInBackground.
Il modo in cui lo faccio è avere un gestore degli errori e inviare messaggi ad esso. Funziona bene, ma è l'approccio "giusto" o esiste un'alternativa migliore?
Inoltre capisco che se definisco l'errore Handler come campo Activity, dovrebbe essere eseguito nel thread dell'interfaccia utente. Tuttavia, a volte (molto imprevedibilmente) riceverò un'eccezione che dice che il codice attivato da Handler#handleMessageviene eseguito sul thread errato. Dovrei invece inizializzare Error Handler in Activity#onCreate? La collocazione runOnUiThreadin Handler#handleMessagesembra ridondante ma si esegue in modo molto affidabile.