execute
-
안드로이드 AsyncTask의 doInBackground 호출 안됨Android 2020. 7. 19. 22:40
AsyncTask를 사용하던 중 doInBackground()가 호출이 되지 않는 상황을 겪게 되었다. 복잡한 앱이 아닌 단순 클릭킹 프로토타입을 만들던 중에 일어난 일이라 황당할 따름이었다. 대략 화면을 터치하면 화면이 전환되며 4개의 작은 동영상이 동시에 재생되는 너무나 간단한 작업이라 아무 생각 없이 AsyncTask 4개를 돌렸는데 1개만 재생이 되는 현상이 나타났다. 찾아보니 문제의 원인은 AsyncTask가 이름의 뉘앙스와는 어울리지 않게 기본적으로 싱글 스레드에서 실행이 되었기 때문이었다. 영상 재생 후 다른 작업을 같이 하려고 무한루프에서 2초 정도씩 슬립하며 추가 작업을 수행했는데 이게 문제였다. 이 무한 루프가 끝날 때까지 다른 AsyncTask들이 끝날 기약없는 대기를 타고 있었던 것..