앱 종료시 AsyncTask 종료시키기
앱 종료시
AsyncTask 종료시키기
ㆍ 어떤 작업을 background로 돌리기 위해서
AsyncTask를 사용할 때가 있다.
ㆍ 서버에서 주기적으로 접근해서 값을 요청하거나
주기적이 아니더라도 일정 텀을 준후에 접근하기
위해서 background를 걸어놓는다던가..
ㆍ 그런데 이 background 작업이 앱이 실행중일때만
유지되도록 하고 싶은데 AsyncTask를 사용하면 앱을
종료하더라도 계속 돌아가게 된다.
Log를 찍어서 보면
알 수 있는데
back키를 눌러서
onDestroy를
태워서 앱을
종료시켜봐도
AsyncTask가
끝나지 않고
running 중이면
계속 멈추지 않고
돌아가게 된다.
이때 홈키를 눌러서
history까지 삭제해버리면
종료되긴 한다.
어쨋든..
앱을 종료하면
Async를 종료시키기 위해
onDestory에 한가지
처리를 추가시켜준다
만약
ItpangAsyncTask itpangAsyncTask = new ItpangAsyncTask();
itpangpangAsyncTask.execute();
이런식으로 실행시켰다고
가정하면
onDestroy에서
이렇게 처리해주면
된다.
try
{
if (itpangAsyncTask.getStatus() == AsyncTask.Status.RUNNING)
{
itpangAsyncTask.cancel(true);
}
else
{
}
}
catch (Exception e)
{
}
실행중인 AsyncTask의
상태를 얻어와서(getStatus())
그 상태가 RUNNING중이면
cancel 시켜버리겠다는
뜻이다.
'안드로이드(android) > 알아두면 좋은것' 카테고리의 다른 글
안드로이드 스튜디오 2.2 한글깨짐 (0) | 2016.10.09 |
---|---|
TextView(Button) TextColor Selector 코드로 변경하기 (0) | 2016.10.07 |
Notification 아이콘 클릭시 특정 프래그먼트로 이동 (1) | 2016.08.02 |
안드로이드 스튜디오 JavaCV 관련 (0) | 2016.07.19 |
NDK : javah 문제(.h 안만들어질때 Could not find~) (0) | 2016.07.14 |