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

스레드가 이해가 잘 안되네요..

0 추천
OnTouch에다가 getAction Down으로 설정한후

버튼1이 ispressed() 눌렸을경우

패킷1값

버튼2이 ispressed() 눌렸을경우

패킷2값

이렇게 코드를 만들었는데

 

버튼1이 눌르면서 버튼2를 눌려야 먼저누른 버튼1값이 동작합니다

기존 버튼1 스레드가 끝나야 버튼1값이 들어가는건지

아무래도 버튼1값이 큐에서 놀고있는거같네요

스레드쪽 이해가 부족해서 어떻게 해야할지 헷갈리네요

쓰레드 하나 구현해놓고 버튼이벤트마다 쓰레드 호출해서 동작하게 해줘야하나요?
예림이그코드좀바바 (2,470 포인트) 님이 2014년 12월 29일 질문
예림이그코드좀바바님이 2014년 12월 29일 수정
말씀하신 부분이 쓰레드와 딱히 관계가 없어보이는데요. 차라리 onTouch부분 쪽 소스를 보여주시면서 설명해주시는 게 답변자가 이해하기에 더 좋을 것 같습니다.
if (motionEvent.getAction() == motionEvent.ACTION_DOWN) {
            Log.d("test", "down ");

            if (button_l1.isPressed()) {
                Log.d("test", "l1 pressed ");
                p1 = 0x0001;
                btService.write(dividePacket(p1));
            }
        }
        else if(버튼 2){
         다른패킷값 동일메소드처리
        }....

버튼처리쪽 부분입니다
버튼을 처음으로 누를시에 스레드가 동작이 안끝나서
다음버튼을 눌러야 그때서야 처리가되네요
Thread.sleep 주면 처리가되긴하는데 연타로
버튼을 빠르게눌러야 값이 보내집니다

수정합니다.. 말씀대로 스레드랑은 직접적인 관련이없네요..ㅠㅠ

1개의 답변

+1 추천
 
채택된 답변
스레드와 핸들러를 같이 사용해보셔요

스레드의 시작과 종료시 핸들러를 통해서 버튼들의 상태들을 관리해보셔요

boolean 플레그를 사용하셔도...
nicehee (73,100 포인트) 님이 2014년 12월 29일 답변
예림이그코드좀바바님이 2015년 3월 2일 채택됨
...