Ho bisogno di scaricare un'immagine da internet, in un thread diverso,
e quindi inviare quell'oggetto immagine nel messaggio del gestore, al thread dell'interfaccia utente.Inserire un oggetto nel messaggio Handler
Ho già questo:
...
Message msg = Message.obtain();
Bundle b = new Bundle();
b.putParcelable("MyObject", (Parcelable) object);
msg.setData(b);
handler.sendMessage(msg);
E quando ricevo questo messaggio, voglio estrarre l'oggetto:
...
public void handleMessage(Message msg) {
super.handleMessage(msg);
MyObject objectRcvd = (MyObject) msg.getData().getParcelable("IpTile");
addToCache(ipTile);
mapView.invalidate();
}
Ma questo mi sta dando:
...java.lang.ClassCastException...
Qualcuno può aiutare?
E, a proposito, è questo il modo più efficace per passare un oggetto al thread UI?
?
Grazie a tutti!
Necroposting, ma questa soluzione porta alla fusione impossibile quando si cerca di recuperare i dati. –
Per recuperare i dati necessari: 'CustomObject passedObject = (CustomObject) msg.obj;' – amp
Dal documento ufficiale: Quando si utilizza Messenger per inviare il messaggio tra processi, questo può essere non nullo solo se contiene Parcelable di una classe di framework (non una implementata dall'applicazione). Per altri trasferimenti di dati usa setData (Bundle). Nota che gli oggetti Parcelable qui non sono supportati prima della versione FROYO. – Loda