AsyncTask 당연히 병렬처리 된다고 생각했는데... 아니었음...
When first introduced, AsyncTasks were executed serially on a single background thread. Starting with DONUT, this was changed to a pool of threads allowing multiple tasks to operate in parallel. After HONEYCOMB, it is planned to change this back to a single thread to avoid common application errors caused by parallel execution. If you truly want parallel execution, you can use the executeOnExecutor(Executor, Params...) version of this method with THREAD_POOL_EXECUTOR; however, see commentary there for warnings on its use. |
=> 해석하면
- AsyncTask가 처음 도입되었을때는 순차적으로 하나의 백그라운드 쓰레드를 실행
- DONUT(1.6버전)부터는 여러개의 태스크를 병렬적으로 처리하도록 변경
- 다시 HONEYCOMB(3.0버전)부터는 하나의 쓰레드만 실행하게끔...(한마디 직렬... 순차적...)
- THREAD_POOL_EXECUTOR를 사용 executeOnExecutor(Executor, Params...) 로 쓰레드를 병렬적으로 실행시킬수 있게
되어 있음...
아아아아아아!!!!!!
ㅠ_ㅠ
참조 블로그 :
http://trend21c.tistory.com/1715
https://gist.github.com/benelog/5954649
허니컴 버전 이상에서는 AsyncTask.SERIAL_EXECTOR 가 Default
ActivityThread => DefaultExecutor 변경 방법
====================================================================
if (data.appInfo.targetSdkVersion <= android.os.Build.VERSION_CODES.HONEYCOMB_MR1) {
AsyncTask.setDefaultExecutor(AsyncTask.THREAD_POOL_EXECUTOR);
}
====================================================================
'프로그래밍 정리 > 안드로이드' 카테고리의 다른 글
[Android - 안드로이드] Navigation Drawer or DrawerLayout (2) | 2015.04.17 |
---|---|
[Android - 안드로이드] 자바 소스에서 상황에 따른 Color값 변경(presee, check.. 등등) (0) | 2015.04.14 |
[Android - 안드로이드] TextView 링크 관련(이메일, 웹주소 등등) (0) | 2015.03.23 |
[Android - 안드로이드] Google(구글) 인앱 결제 (0) | 2015.03.18 |
[Android - 안드로이드] bindService 와 startService 의 차이 (0) | 2015.02.02 |