안드로이드에서 버튼을 눌르고 있을때 이벤트 주기
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) | 2020.03.26 |
---|---|
소캣 함수 (0) | 2014.12.23 |
TCP 소켓의 기초 (0) | 2014.12.23 |
Socket accept()호출 Invalid 에러 (0) | 2014.12.18 |