안드로이드에서 버튼을 눌르고 있을때 이벤트 주기 


        button_03.setOnTouchListener(new View.OnTouchListener() {

@Override

public boolean onTouch(View v, MotionEvent event) {

int action = event.getAction();

if(MotionEvent.ACTION_DOWN == action){

onHandlerUp();

}else if(MotionEvent.ACTION_UP == action){

mHandler.removeCallbacks(r);

}

return true;

// TODO Auto-generated method stub

// return false;

}

});



    private Runnable r;

    private void onHandlerUp() {

mHandler = new Handler();

r = new Runnable() {

@Override

public void run() {

tc = new TCP_Client();

 

 myTaskParams = "2";

 

     tc.execute(myTaskParams);

mHandler.postDelayed(r, 100);

}

};

mHandler.postDelayed(r, 20);

}




메인 스레드                       서브 스레드

UI  관런 변경         <===>    작업수행 


안드로이드는 메인 스레드 (백그라운드에서 ui) 변경시키면 에러 발생 

서로 변경 하는것을 허용하게 되면 동기화 문제 발생     

핸들러를 이용하여 스레드간에 통신 할수 있도록 함.



postDelayed(mRunnable, 1000); // mRunnable 객체를 1초 뒤에 실행



저작자 표시 비영리
신고

'programming' 카테고리의 다른 글

소캣 함수  (0) 2014.12.23
TCP 소켓의 기초  (0) 2014.12.23
안드로이드 버튼 눌르고 있을때 처리 이벤트  (0) 2014.12.18
Socket accept()호출 Invalid 에러  (0) 2014.12.18

+ Recent posts