[안드로이드] Rxjava로 AsyncTask 대체하기
기존에 많이 사용하던 AsyncTask가 deprecated되었다. Rxjava로 이를 대체해보자.
먼저 implementation을 해준다.
implementation 'io.reactivex.rxjava3:rxandroid:3.0.0'
implementation 'io.reactivex.rxjava3:rxjava:3.0.7'
Rxjava의 backgroundTask를 이용하는 방법은 아래와 같다.
Disposable backgroundTask;
// backgroundTask를 실행하는 메소드
private void sampleMethod() {
// task에서 반환할 Hashmap
HashMap<String, String> map = new HashMap<>();
//onPreExecute(task 시작 전 실행될 코드 여기에 작성)
backgroundTask = Observable.fromCallable(() -> {
//doInBackground(task에서 실행할 코드 여기에 작성)
return map;
}).subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Consumer<HashMap<String, String>>() {
@Override
public void accept(HashMap<String, String> map) {
//onPostExecute(task 끝난 후 실행될 코드 여기에 작성)
backgroundTask.dispose();
}
});
}
Author And Source
이 문제에 관하여([안드로이드] Rxjava로 AsyncTask 대체하기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@bonimddal2/안드로이드-Rxjava로-AsyncTask-대체하기저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)