Ich brauche ein Bild aus dem Internet herunterladen, in einem anderen Thread,
und dann in der Prozedur Nachricht, dass das Bildobjekt senden, auf den UI-Thread.Setzen Sie ein Objekt in Handler Nachricht
ich dies bereits haben:
...
Message msg = Message.obtain();
Bundle b = new Bundle();
b.putParcelable("MyObject", (Parcelable) object);
msg.setData(b);
handler.sendMessage(msg);
Und wenn ich diese Meldung erhalten, Ich möchte das Objekt extrahieren:
...
public void handleMessage(Message msg) {
super.handleMessage(msg);
MyObject objectRcvd = (MyObject) msg.getData().getParcelable("IpTile");
addToCache(ipTile);
mapView.invalidate();
}
Aber das gibt mir:
...java.lang.ClassCastException...
Kann jemand helfen?
Und übrigens, ist dies der effizienteste Weg
ein Objekt an die UI Thread übergeben?
Danke euch allen!
Necroposting Genießen Sie, aber diese Lösung führt zu unmöglich Gießen, wenn die Daten abzurufen versuchen. –
So rufen Sie die Daten ab, die Sie benötigen: 'CustomObject passwordObject = (CustomObject) msg.obj;' – amp
Aus dem offiziellen Dokument: Wenn Messenger die Nachricht über Prozesse hinweg sendet, kann sie nur null sein, wenn sie ein Parcelable enthält einer Framework-Klasse (nicht eine von der Anwendung implementiert). Für andere Datenübertragungen verwenden Sie setData (Bundle). Beachten Sie, dass parzellierbare Objekte hier nicht vor der FROYO-Version unterstützt werden. – Loda