0

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

+0

Schnittstellen - die gleiche Weise würden Sie Daten zwischen Threads in Plain Java übergeben –

Antwort

0

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

+0

Eigentlich bekomme ich dieses Bild von einer Socket-Verbindung.Und ich möchte ui mit diesem Bild zu aktualisieren. – user6657161

+0

Ich schaffte das, indem ich Bild im Gedächtnis speichere, dann sendende Tätigkeit eine Mitteilung, dass es Bild jetzt lesen kann. – user6657161

+0

@ 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

0

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()); 
+0

Gut, aber kann es nicht verwenden, weil ich nicht aktualisieren müssen (als Bild ist nicht schon da) – user6657161

0

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.

+0

So arbeiten Sie mit XMPP? : D –

+0

Nein ich bin nicht, P es war ein Captcha Bild. – user6657161