출처: http://dhjin.egloos.com/viewer/2527621
백그라운드 작업을 구현하기 위해 Thread를 쓰거나 AsyncTask를 사용하는데
아무래도 AsyncTask가 사용하기는 편하다.
둘은 시스템 적으로도 차이가 있다고 하니.. 관련 자료를 공부하는 것도 좋을 듯
어쨌뜬 AsyncTask를 사용해 HttpPost를 하고 있는데 문제는 호출한 Activity나 Fragment가
종료 되어도 AsyncTask는 살아 있다는거!!!
이는 여러 문제점을 일으킬 수 있는데, 그 예로
Http Request -> Activity 전환 -> Http Response -> Activity 변경 시도 == Exception!!!! |
이런 문제들이 발생하게 된다.
구글링을 해 보면 몇 가지 해결책이 제시되는데 복잡한걸 싫어하므로
아래와 같이 해결~! 당연히 httpReceiver는 interface
물론 입맛에 따라 http통신 등은 그냥 프로그래스 보여주고 블럭시켜도 뭐....
@Override protected void onPostExecute(Boolean bOnline) { if( httpReceiver instanceof Fragment ) { if( ((Fragment)httpReceiver).isDetached() ) { return; } } else if( httpReceiver instanceof Activity ) { if( ((Activity)httpReceiver).isFinishing() ) { return; } } if( bOnline ) httpReceiver.onResponseComplete(....); else httpReceiver.onHTTPFailure(...); } |
'IT_Programming > Android_Java' 카테고리의 다른 글
[안드로이드] 웹뷰(WebView) 멈춤 현상 (0) | 2014.03.28 |
---|---|
안드로이드 정의 속성으로 커스텀 뷰 만들기 (0) | 2014.03.27 |
[펌] FragmentManager, FragmentTransaction에 대해서! (0) | 2014.03.25 |
[펌] YUV를 Bitmap 으로 바꾸기 (0) | 2014.03.25 |
[펌] Bitmap 을 배열로 배열을 Bitmap 으로... (0) | 2014.03.25 |