본문 바로가기
Front-end/Android (안드로이드 앱 개발)

Android studio (안드로이드 스튜디오) AsyncTask, Background 백그라운드

by javapp 자바앱 2020. 3. 16.
728x90

 

AsyncTask

 

안드로이드에서는 UI쓰레드를 정지 시켜 둘 수 없기 때문에,

background 작업이 필요한 경우를 위해서 AsyncTask 지원

 

onPreExcute

-background 작업이 시작하기 전에 호출 / 백그라운드 작업전 해야할 것

 

doInBackground

-baackground 작업 구간

 

onProgressUpdate

-doInBackground 이 실행되는 도중에 호출 / 중간중간 UI 업그레이드 하고 싶을 때

 

onPostExcute

-doInBackground 가 완료 되면 호출이 된다.

 

 

 

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        //비동기식식
       BackgroundTask backgroundTask = new BackgroundTask();
        backgroundTask.execute();   //doInBackground 실행 다음 밑으로 진행
    }

    //doinbackground 변수 타입, onProgress 타입, onPostExcute 타입
    class BackgroundTask extends AsyncTask<Integer, Integer, Integer> {//프리미티브 타입 x, 레퍼런스 타입으로

        @Override
        protected void onPreExecute() {
            super.onPreExecute();
        }

        @Override
        protected Integer doInBackground(Integer... integers) {//Integer 가 여러개일 수 있음
            publishProgress(values);    //onProgressUpdate 호출

            return null;
        }

        @Override
        protected void onProgressUpdate(Integer... values) {
            super.onProgressUpdate(values);
        }

        @Override
        protected void onPostExecute(Integer integer) {
            super.onPostExecute(integer);
        }
    }

 

댓글