안드로이드(android)/개발중 생긴일
Multiple?병렬? executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR)
ITPangPang
2016. 7. 26. 22:41
Multiple?병렬?
executeOnExecutor
(AsyncTask.THREAD_POOL_EXECUTOR)
ㆍ 오늘은 Background 작업해야 할 게 생겨서 서비스를
돌릴까 하다가.. 앱이 꺼졌을때는 굳이 돌릴 필요가 없어서
AsyncTask로 처리하려고 했는데 뭔가 동시에 작업이 안되는
것이다.
ㆍ Async 하나 실행시켜서 뒷단으로 원하는 값 얻을때까지 무한으로 돌리는 중이었는데,
이게 뒷단에서 돌아가는 도중에 서버와 통신하려고 다른 Async를 실행시키면 서버통신이 안되는 것이었다.
그리고 먼저 실행시켰던 Async가 끝나야 그 후에 바로 서버랑 통신이 되는 것이었다.
그래서
아 골치아프겠구나
생각했는데 찾아보니
생각보다 간단했다.
HelloAsyncTask helloAsyncTask = new HelloAsyncTask();
helloAsyncTask.execute();
보통은 대충
이렇게 쓰는데
아래껄 이렇게 바꾸니까
병렬적으로 동시에
Async 작업이 가능했다.
HelloAsyncTask helloAsyncTask = new HelloAsyncTask();
helloAsyncTask.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR,"");
뭐 SDK 허니콤이상에서
써야되서 버전별로
처리를 해야되는데
요즘 허니콤 본적이
거의 없어서
그냥 안썼다.
허니콤 보게 되면
추가 시켜야겠다.