마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

서비스 안에 소켓 질문이요.

0 추천

서비스를 상속 받는 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+""); 
 
그냥 이렇게 버튼 이벤트만 두고 해보니 안되더군요;;;  뭘 공부하고 이해해야 할지 방향만 조금 잡아 주심 감사하겠습니다ㅜㅜ
 

저 위에서 잘못된 부분도 지적해주심 감사합니다 !!

숀화이트 (3,310 포인트) 님이 2014년 5월 28일 질문

1개의 답변

+1 추천

액티비티와 서비스를 바인드하면 가능합니다.

http://i5on9i.blogspot.kr/2013/01/service-bind-local-service.html

참고해보세요^^

라꿀리 (1,280 포인트) 님이 2014년 5월 28일 답변
...