서비스를 상속 받는 A 클레스가 있고 이 안에
@Override
public int onStartCommand(Intent intent, int flags, int startId){
Thread clientThread = new Thread() {
public void run() {
try {
connect(IP, PORT);
} catch (Exception e) {
e.printStackTrace();
}
}
public void connect(String ip, int port) {
try {
socket = new Socket(ip, port);
in = socket.getInputStream();
out = socket.getOutputStream();
while (socket != null && socket.isConnected()) {
Log.d("connectsocket",socket+"");
size = in.read(w);
if (size <= 0) {
continue;
}
}
} catch (Exception e) {
}
}
};
clientThread.start();
return super.onStartCommand(intent, flags, startId);
}
이렇게 하고 서비스 스타트 하니 소켓이 정상적으로 열리는것을 확인했습니다.
그런데 뒤에서 돌고 있는 소켓을 엑티비티에서 어떻게 빼와야 하는지 감이 잘 안잡힙니다;;
메인 엑티비티에서 startService(intent); 를 하고 메인 엑티비티에서 소켓을 쓰고 싶습니다.
if (socket != null && socket.isConnected()) {
Log.d("socket",socket+"");
그냥 이렇게 버튼 이벤트만 두고 해보니 안되더군요;;; 뭘 공부하고 이해해야 할지 방향만 조금 잡아 주심 감사하겠습니다ㅜㅜ
저 위에서 잘못된 부분도 지적해주심 감사합니다 !!