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을 붙여주면 된다.
(받을 변수 선언하는걸 모르는 사람은 없겠지..?..)