안드로이드에서는 비동기적으로 UI 작업을 처리 할 수있도록 asyncTask라는 놈을 제공한다. 하지만, 여러모로 까탈스러운 점이 많으니 조심하자. mTask = new aTask(); if(mTask != null){ mTask.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR); } 소스를 보면 먼저 태스크를 생성하고 실행 한다. 그러나 만약, if(mTask == null) { mTask = new aTask(); mTask.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR); }else { mTask.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR); } 위와 같이 다시 생성 하지 않..
UI 가 있는 곳에서 스레드 작업을 조금 길게 하면 화면에 버벅거리면서 아예 멈추는 경우도 발생한다. 하지만 스레드 대신 AsyncTask를 사용하면 이런 현상을 말끔히 해결해준다. class MainForReadyInitAsyncTask extends AsyncTask { @Override protected void onPostExecute(Void result) { // 작업이 완료 된 후 할일 super.onPostExecute(result); } @Override protected void onPreExecute() { // 작업을 시작하기 전 할일 super.onPreExecute(); } @Override protected Void doInBackground(Void... params) { /..