질문이 좀 이상하네요. 어떻게 설명해야 할지를 몰라서.. ㅜ_ㅜ..

리눅스 서버에 서버 소켓이 구현되어 있고요.
안드로이드 기기들이 클라이언트가 되어 값을 가져옵니다.
구조는 채팅방 구조이고요..

그런데 Main Activity가 뜨면 소켓에 접속을 하고 통신을 하고 있는데요.
채팅방 만들기를 위해서 새로운 Sub Activity를 띄운 후 이 Activity에서도 해당 소켓과 통신하여 값을 받아오려고 합니다.

제가 하는 구조로는 Main Activity 에서만 리시브 값이 넘어오네요.


참고한 소스는 아래와 같습니다.

ChatMain에서 showCreateRoom() 호출 하면 
Sub Activity 가 뜨는데 여기서 ChatMain 과 동일한 방법으로 
        this.onHandler();
this.getMessage();
이 두 메서드를 만들어서 실행하니 SocketListener 가 2개가 되어 
서버에서 값이 날라와도 ChatMain의 Handler 에 값이 들어오고 Sub Activity 로는 값을 못받고 있어요.


띄워놓은 Activity 에서 결과값을 받고싶은데 어떻게 받아야 할까요?


* * * * *

public class SocketManager {
public final static String HOST = "210.xxx.xxx.xxx";
public final static int PORT = 3xxx3;
private static Socket socket;
public static Socket getSocket() throws IOException
{
if( socket == null)
socket = new Socket();
if( !socket.isConnected() )
socket.connect(new InetSocketAddress(HOST, PORT));
return socket;
}
public static void closeSocket() throws IOException
{
if ( socket != null )
socket.close();
}
public static void sendMsg(String msg) throws IOException
{
getSocket().getOutputStream().write((msg + '\n').getBytes());
}
}

* * * 

public class ChatMain extends Activity {

private Handler mainHandler;
private SocketListener sl;
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.login);
        
        this.onHandler();
this.getMessage();
    }

    public void onHandler() {
        mainHandler = new Handler() {
         @Override
         public void handleMessage(Message msg) {
         super.handleMessage(msg);
         Log.d("SocketListener", "OnlineRoomList: " + msg.obj.toString());
         }
        };
    }

    public void getMessage()
    {
     sl = new SocketListener(getApplicationContext(), mainHandler);
     sl.start();
    }

private void showCreateRoom() {
Intent intent = new Intent(this, OnlineRoomCreate.class);
startActivityForResult(intent, Config.ACTIVITY_ONLINE_ROOM_CREATE);
}
}

* * *

public class SocketListener extends Thread{
private InputStream im;
private BufferedReader br;
Handler mHandler ;
Context context;
public SocketListener(Context context, Handler handler) {
this.mHandler = handler;
this.context = context;
try {
im = SocketManager.getSocket().getInputStream();
br = new BufferedReader(new InputStreamReader(im));
} catch (IOException e) {
Log.e("SocketListener", e.getMessage());
}
}
@Override
public void run() {
super.run();
while(true)
{
try {
String receivedmsg;
while((receivedmsg = br.readLine())!= null)
{
Log.e("SocketListener", receivedmsg);
Message msg = Message.obtain(mHandler, 0,0,0,receivedmsg);
mHandler.sendMessage(msg);
}
} catch (IOException e) {
Log.e("SocketListener",e.getMessage());
}
}
}

}