안드로이드 개발 질문/답변
(글 수 45,052)
public void free() {
Log.i(TAG,"FREE() called!@!");
sm.close();
writeDB.close();
readDB.close();
urlCon.disconnect();
if(!task_case1.isCancelled()) {
task_case1.cancel(true);
Log.i(TAG,"CANCEL task_case1");
if(!task_case1.isCancelled()) {
Log.e(TAG,"BUT NOT CANCELLED task_case1");
}
} else if(!task_case2.isCancelled()){
task_case2.cancel(true);
Log.i(TAG,"CANCEL task_case2");
if(!task_case2.isCancelled()) {
Log.e(TAG,"BUT NOT CANCELLED task_case2");
}
} else if(!task_case3.isCancelled()) {
task_case3.cancel(true);
Log.i(TAG,"CANCEL task_case3");
if(!task_case3.isCancelled()) {
Log.e(TAG,"BUT NOT CANCELLED task_case3");
}
}
}
하하 저래도 BUT NOT CANCELLED가 찍히네요 하하하
task_case1~3 모두 AsyncTask이고요..
무려 onPostExeccute와 onCancelled에서 위의 free()함수 모두 호출하고, free()함수 전에 this.cancel(true)까지 써줬는데도
살아있네요
이놈의 AsyncTask 죽이는방법없을까요 ㅠㅠ;
도대체 이건 어떻게 써먹는거임..
이것때문에 앱 껏다가 다시키면..기존의 AsyncTask그대로 백그라운드에서 살아있어가지고 뭐 진행이안되던데 흑흑
도와주세요 .
조언부탁드립니다.




boolean 값 같은 변수를 하나 둬서 특정값이 되면 하던 작업에서 return 되게 하던가 그렇게 처리하세요.