본 글은 그냥 본인이 블로그를 찾아 헤매며 두 방식의 차이점이 당췌 무엇인가?
궁금해서 요약해 본 것입니다.
1. 안드로이드에서의 멀티테스킹
안드로이드는 Thread & Handler / AsyncTask 를 통해서 멀티테스킹을 구현할 수 있습니다
특히나 UI 쓰레드는 항상 최상위의 잡혀 있기 때문에 일반적으로 Thread 만으로는 UI 영역에 접근할 수 없습니다.
그래서 나온 방식이 Thread 와 Handler 를 이용한 방식입니다
위의 코드는 한 멤버의 리스트에 대해서 Handler 와 Thread 를 이용해서 구현한 멀티쓰레딩입니다.
소스가 매우 복잡하죠?
그래서 나온 방식이 아래의 방식입니다
그 많은 소스가 AsyncTask 를 통해서 줄여 줄 수 있게 되었습니다.
AsyncTask 는 Handler 에서 사용된 코드들의 많은 부분을 캡슐화 하면서 가독성을 높여주게 되었습니다
하지만...AsyncTask 에도 치명적인 단점이 있습니다.
제가 알아본 가장 큰 문제점은 AsyncTask 를 구현한 액티비티를 종료하였을 때에 별도의 지시가 없다면 AsyncTask 는 종료되지 않고 계속적으로 구현된다는 것입니다.
게다가 종료되지 않은 AsyncTask 가 구동 중 똑같은 AsyncTask 를 실행하게 되면 충돌이 일어나게 된다는 것이죠.
그래서 한 블로거가 이를 개선할 방법을 API로 만들어 배포하고 있습니다.
기본적인 개념은 아래와 같습니다.
라이프사이클을 구분할 수 있는 함수를 만들어서 AsyncTask 의 문제점을 개선하였다는 것입니다.
----------------------------------------------------------------------
그냥 제가 궁금했던것을 구글링하다가 한번 남겨보네요
참조사이트
http://www.ibm.com/developerworks/kr/library/x-gourmetandroid/index.html
(안드로이드 멀티쓰레드에 대한 설명)
http://brainflush.wordpress.com/2009/11/16/introducing-droid-fu-for-android-betteractivity-betterservice-and-betterasynctask/
(AsyncTask 의 문제개선 소스 설명 및 배포)
궁금해서 요약해 본 것입니다.
1. 안드로이드에서의 멀티테스킹
안드로이드는 Thread & Handler / AsyncTask 를 통해서 멀티테스킹을 구현할 수 있습니다
특히나 UI 쓰레드는 항상 최상위의 잡혀 있기 때문에 일반적으로 Thread 만으로는 UI 영역에 접근할 수 없습니다.
그래서 나온 방식이 Thread 와 Handler 를 이용한 방식입니다
private void refreshStockData(){ |
위의 코드는 한 멤버의 리스트에 대해서 Handler 와 Thread 를 이용해서 구현한 멀티쓰레딩입니다.
소스가 매우 복잡하죠?
그래서 나온 방식이 아래의 방식입니다
private void refreshStockData() { |
그 많은 소스가 AsyncTask 를 통해서 줄여 줄 수 있게 되었습니다.
AsyncTask 는 Handler 에서 사용된 코드들의 많은 부분을 캡슐화 하면서 가독성을 높여주게 되었습니다
하지만...AsyncTask 에도 치명적인 단점이 있습니다.
제가 알아본 가장 큰 문제점은 AsyncTask 를 구현한 액티비티를 종료하였을 때에 별도의 지시가 없다면 AsyncTask 는 종료되지 않고 계속적으로 구현된다는 것입니다.
게다가 종료되지 않은 AsyncTask 가 구동 중 똑같은 AsyncTask 를 실행하게 되면 충돌이 일어나게 된다는 것이죠.
그래서 한 블로거가 이를 개선할 방법을 API로 만들어 배포하고 있습니다.
기본적인 개념은 아래와 같습니다.
Life-cycle helpersthese methods let you conditionally perform work depending on a context’s life-cycle state.
|
라이프사이클을 구분할 수 있는 함수를 만들어서 AsyncTask 의 문제점을 개선하였다는 것입니다.
----------------------------------------------------------------------
그냥 제가 궁금했던것을 구글링하다가 한번 남겨보네요
참조사이트
http://www.ibm.com/developerworks/kr/library/x-gourmetandroid/index.html
(안드로이드 멀티쓰레드에 대한 설명)
http://brainflush.wordpress.com/2009/11/16/introducing-droid-fu-for-android-betteractivity-betterservice-and-betterasynctask/
(AsyncTask 의 문제개선 소스 설명 및 배포)