C.E/Java

[android] AsyncTask 사용법 (예제)

숨[Breath] 2019. 2. 26. 09:48


1. AsyncTask 를 사용할 class를 만든다



2. class 명에 AsyncTask를 extends 해준다.


>> public class parserX extends AsyncTask<Integer,Void, String>




3. 생성자를 만든다.


>>

public parserX(int[] ints) {
this.s1 = ints;
this.s_1 = ss[0];
this.s_2 = ss[1];
}

3. doInBackground / onPostExecute 를 overriding 해준다.


4. AsyncTask를 사용할 activity에서 호출해준다.

parserX parserX = new parserX(s);
parserX.execute();


전체 사용 예제

(완전한 코드가 아닌 예제 코드입니다. 보고 따라하시는데에 문제 없을거예요.)


1
2
3
4
5
6
7
8
9
10
11
12
public class MainActivity extends Activity  {
 
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
 
    
        xmlParser xmlParser = new xmlParser(); //생성
        xmlParser.execute(); //AsyncTask - doInBackground
 
    }
}
cs

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
public class xmlParser extends AsyncTask<Integer,Void, String>{
//<Integer,Void, String> 형태는 사용하는 형식에 따라 달라집니다.
 
    //본문 -> 생성
    public xmlParser() {
    }
 
    //execute 할 시 동작된다.
    @Override
    protected String doInBackground(Integer... integers) {
    //이름 그대로 뒷작업이다(...)
    }
 
    @Override
    protected void onPostExecute(String s) {
        super.onPostExecute(s);
    //doInBackground 이후 값을 받아온다.
    //이후 처리할 부분은 여기서.    
    }
}
cs


* TIP

onPostExecute 값을 가지고 오기 위해서는 xmlParser.execute()에 .get을 붙여주면 된다.

(받을 변수 선언하는걸 모르는 사람은 없겠지..?..)