Ich muss Bitmap von Nicht-UI-Klasse zu Aktivität senden, damit ich es verwenden kann oder direkt aus der Nicht-UI-Klasse zu aktualisieren. Wie kann ich das machen. Ist localbroadcreceiver nur Option hier oder gibt es eine einfache Methode, um mein Ziel zu erreichen. Bearbeiten: Ich erhalte dieses Bild von einer Socket-Verbindung und möchte ui mit diesem Bild aktualisieren.Bild von Nicht-UI-Klasse zu Aktivität senden
Antwort
Sie müssen nicht die tatsächliche Bitmap
senden. Einen Pfad zum Bild senden könnte gut für Sie arbeiten, wenn Sie mit Intents
und Interprozesskommunikation arbeiten, aber wenn es im gleichen Prozess ist dann die Referenz übergeben wird So wie du es mit jedem Pojo machst.
Wenn es ein Netzwerkbild ist. Je nach Größe des Bildes können Sie es auf der Festplatte oder im Speicher zwischenspeichern.
PS; Vielleicht möchten Sie Ihre Frage ein bisschen weniger zweideutig
Eigentlich bekomme ich dieses Bild von einer Socket-Verbindung.Und ich möchte ui mit diesem Bild zu aktualisieren. – user6657161
Ich schaffte das, indem ich Bild im Gedächtnis speichere, dann sendende Tätigkeit eine Mitteilung, dass es Bild jetzt lesen kann. – user6657161
@ user6657161 genial. Es ist ganz einfach. Sag einfach der Aktivität "Hey, ich habe gerade die Datei von einem Sockel, hier ist der Pfad dazu, du kannst es jetzt lesen." Ich finde 'BroadCastReceiver' 's nützlich für die Weitergabe von Nachrichten in Android – peter
Einen Weg zu machen, ist diese Methode static
zu machen und Sie können es dann in Ihrer nicht-Aktivitätsklasse verwenden wie:
public class MyBitmap{
public static Bitmap getMyBitmap(){
Bitmap bitmap = Get your bitmap from the socket connection
return bitmap;
}
}
Dann in Ihrem activity class
:
imageView.setImageBitmap(MyBitmap.getMyBitmap());
Gut, aber kann es nicht verwenden, weil ich nicht aktualisieren müssen (als Bild ist nicht schon da) – user6657161
Ja, Sie können leicht mit localbroadcastreceiver erreichen. und seine gute Praxis, anstatt Eventbus oder so anzuwenden. kann sein, dass Sie XMPP etwas wie verwenden. also in localbroadcastreceiver, wenn Sie Bild bekommen, nur erhalten Sie volle Bildpfad von dort und übergeben Sie es an die Aktivität und laden Sie es aus Pfad in Aktivität.
So arbeiten Sie mit XMPP? : D –
Nein ich bin nicht, P es war ein Captcha Bild. – user6657161
Schnittstellen - die gleiche Weise würden Sie Daten zwischen Threads in Plain Java übergeben –