안드로이드 개발 질문/답변
(글 수 45,052)
아예 doInBackground()메소드로 들어오질 않네요ㅠㅠㅠ
아 답답해죽겠습니다ㅠㅠㅠㅠ...
tcp통신하는 쓰레드입니다.
서버가 두대이구요(A,B)
다른쓰레드에서 A서버의 ip와 port로 udp통신을 하고있는 상태인데요
이미 A서버와 udp통신을 하는 상태에서 B서버와 tcp통신을 하려고하니까 안되는건지 뭔지...ㅠㅠ;
만약 그렇다 하더라도 소켓생성하는 부분에서 에러가 떠야될거같은데;
이건 뭐... 로그도 계속 찍어보고 읽어봤는데, 에러도 안뱉네요;
그냥 아예 doInBackground()로 들어오질 않습니다ㅠㅠㅠ너무 답답하네요ㅠㅠㅠ
이런현상 겪어본분들 계신가요?ㅠㅠㅠㅠㅠㅠ정말 미치겠습니다ㅠㅠㅠ
++
참고로, onPreExecute()까지는 들어오는것을 로그로 찍어보며 확인했습니다!
2012.09.07 22:14:48
똑같은 어싱크태스크가 아니에요ㅠ.ㅠ..
윗 링크에서의 같은 어싱크태스크라고 하는것은, 같은 인스턴스객체를 말하는것 같은데요ㅠㅠ
다른 인스턴스이구요.. 클래스도 아예 다른 클래스입니다ㅠ.ㅠ 어싱크태스트를 상속한 사용자정의클래스에요..
udp통신쪽에서 recvAsyncTask가 run되어있는 상태에서 sendAsyncTask가 잘 동작하는걸 보면 상관없을것도 같은데..
그래서 혹시 udp소켓이 연결되어있는 상태라, tcp나 http같은(방금 테스트해보니까 httpResponse도 안먹길래요ㅠ.ㅠ) 다른 프로토콜을 쓰는 네트워크연결은 안되는건가 추측했던건데...만약 그렇다면 지금 소스를 다 뒤집어야 되는 상황이라 미치겠네요ㅠㅠㅠㅠ...
++앗! 제가 착각을했네요ㅠ.ㅠ udp통신쪽에서의 send는 AsyncTask로 한게아니라 그냥 Thread로 했었습니다ㅠ.ㅠ 죄송합니다
정말 님께서 말씀해주신 문제가 맞는것같네요ㅠㅠㅠ제가 잘못해석한 모양입니다..
아 이걸 어떻게 해결해야할지 모르겠네요ㅠㅠ.... 비동기니까 당연히 여러개 생성될거라 생각했는데..
각기 다른 사용자정의클래스인데도 충돌이 일어나는건가...;;;ㅠㅠㅠㅠㅠㅠ
2012.09.07 22:47:50
public void upLoadToServer(SelectMusicListItem select)
{
upLoadMusicAsyncThread uploadmusicThread = new upLoadMusicAsyncThread(this, select, handler);
uploadmusicThread.execute();
uploadmusicThread = null;
}
이 부분을 말씀하시는건가요ㅠ.ㅠ
첫번째댓글 링크를 저도 예전에 봤던터라, 항상 execute시킨다음에 null로 초기화시켜주고있습니다.
혹시나하고 저 부분(null로 초기화하는부분)을 없애보았는데도 같은상황이 발생하더군요ㅠ,ㅠ




이번에저도 AsyncTask에 대해서 알아보면서 찾은건데요
AsyncTask사용중에 똑같은 AsyncTask를 실행하게되면 충돌이 일어난다고 합니다
http://darrysea.tistory.com/25