0

비 UI 클래스에서 Bitmap을 보내야 비 UI 클래스를 사용할 수 있습니다. 어떻게하면 돼? localbroadcastreceiver는 여기에있는 옵션일까요, 아니면 내 목표를 달성하기위한 쉬운 방법이 있습니까? : 소켓 연결에서 이미지를 받고 그 이미지로 UI를 업데이트하려고합니다.비 ui 클래스에서 액티비티로 이미지 보내기

+0

인터페이스 - 일반 Java 스레드에서 데이터를 전달하는 것과 같은 방법 –

답변

0

실제를 보내지 않아도됩니다. Intents 및 프로세스 간 통신으로 작업하는 경우 이미지 경로가 잘 전달 될 수 있지만 동일한 프로세스에 있으면 참조 전달이 완료됩니다 당신이 어떤 pojo라도하는 것과 같은 방식입니다.

네트워크 이미지 인 경우. 이미지의 크기에 따라 디스크 나 메모리에 캐시 할 수 있습니다.

PS; 당신은

+0

실제로 소켓 연결에서 해당 이미지를 수신하고 있습니다. 그리고 해당 이미지를 사용하여 UI를 업데이트하고 싶습니다. – user6657161

+0

이미지를 메모리에 저장하고 활동을 보냄으로써 이제 이미지를 읽을 수 있다는 메시지를 보냈습니다. – user6657161

+0

@ user6657161 굉장합니다. 그것은 아주 간단합니다. "이봐 요, 방금 소켓에서 파일을 가져 왔는데 여기에 경로가 있습니다. 지금 읽을 수 있습니다." 나는'BroadCastReceiver'가 안드로이드에서 메시지를 넘겨주는 데 유용하다는 것을 안다. – peter

0

한 가지 방법은 덜 모호한 조금 그 방법 static을 확인하는 것입니다 귀하의 질문을 할 수 있습니다 당신은 다음과 같이 비 활동 클래스에서 사용할 수 있습니다 : 당신의 activity class에서 다음

public class MyBitmap{ 
public static Bitmap getMyBitmap(){ 

     Bitmap bitmap = Get your bitmap from the socket connection 
    return bitmap; 
    } 
} 

:

imageView.setImageBitmap(MyBitmap.getMyBitmap()); 
+0

좋지만 설정할 필요가 없기 때문에 사용할 수 없다. (이미지가 이미 없기 때문에) – user6657161

0

예. localbroadcastreceiver를 사용하면 쉽게 달성 할 수 있습니다. 그리고 이벤트 버스를 적용하는 것보다 좋은 연습 ... XMPP 같은 것을 사용하고 있을지도 모른다. localbroadcastreceiver에서 이미지를 가져 와서 거기에서 전체 이미지 경로를 가져 와서 액티비티로 전달하면 거기에 액티비티의 경로에서로드됩니다.

+0

XMPP로 작업하고 있는가? : D –

+0

아니, 아니야, P는 captcha 이미지 였어. – user6657161