3
안녕하세요, 저는 TCP 소켓에서 일하고 있습니다. 1 초마다 데이터를 읽을 수 있습니다. 그것을 달성하기 위해 아래 코드와 같이 TimerTask를 사용했습니다.안드로이드에서 AsyncTask에 대한 timerTask를 취소하는 방법
Handler handler = new Handler();
Timer timer = new Timer();
TimerTask doAsynchronousTask = new TimerTask() {
@Override
public void run() {
finalizer = new Runnable() {
public void run() {
try {
if (navBool) {
runOnUiThread(new Runnable() {
public void run() {
new RetriveStock().execute(); // AsyncTask.
}
});
}
} catch (Exception e) {
}
}
};
handler.post(finalizer);
}
};
timer.schedule(doAsynchronousTask, 0, 1000);
timer.cancel();
timer = null;
handler.removeCallbacks(finalizer);
나는 코드 사용이 타이머를 취소하는
그러나 타이머를 취소되지 않습니다. 나는 이유를 모른다.
어떻게 현재 실행중인 작업을 취소 할 수 있습니까? – user2085965
귀하의 경우,'doAsynchronousTask.cancel (true)'. ('true' 매개 변수는'cancel()'에 대한 호출이 현재 실행중인 스레드를 선점 할 수 있음을 나타냅니다). –