android java代码重用_Android RxJava线程重用,这是一个坏的做法吗?

我正在使用reformation和Rxjava来处理我的mvvm android应用程序的api调用。根据一些教程,我目前正在使用这样的RxJava。 视图模

我正在使用reformation和Rxjava来处理我的mvvm android应用程序的api调用。根据一些教程,我目前正在使用这样的RxJava。

视图模型.java

CompositeDisposable disposable = new CompositeDisposable();

private void fetchTodolist(){

loading.setValue(true);

disposable.add(

service.getToDoList("A1833")

.subscribeOn(Schedulers.newThread())

.observeOn(AndroidSchedulers.mainThread())

.subscribeWith(new DisposableSingleObserver>>() {

@Override

public void onSuccess(ApiResponse> value) {

if(value.getStatus() == 200){

//on call success code

} else {

//on call rejected code

}

}

@Override

public void onError(Throwable e) {

// on call error code

}

})

);

}

现在我想将成功调用的api调用的结果缓存到room数据库中。所以我需要使用另一个异步方法,并尝试重用之前创建的新线程。这是密码。

private void fetchTodolist(){

loading.setValue(true);

Scheduler a = Schedulers.newThread();

disposable.add(

service.getToDoList("A1833")

.subscribeOn(a)

.observeOn(AndroidSchedulers.mainThread())

.subscribeWith(new DisposableSingleObserver>>() {

@Override

public void onSuccess(ApiResponse> value) {

if(value.getStatus() == 200){

a.scheduleDirect(new Runnable() {

@Override

public void run() {

long inserted = dao.insert(value);

}

});

} else {

//on call rejected code

}

}

@Override

public void onError(Throwable e) {

// on call error code

}

})

);

}