public interface SearchPresenter {
interface ViewLayer {
void updateResults(List<SearchResult> searchResults)
}
void bind(ViewLayer viewLayer);
void unbind();
}
public class SearchPresenterImpl implements SearchPresenter {
ViewLayer viewLayer;
CompositeDisposable compositeDisposable;
@Override
public void bind(ViewLayer viewLayer) {
this.viewLayer = viewLayer;
compositeDisposable = new CompositeDisposable();
compositeDisposable.add(
searchInteractor.getSearchResults()
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(this::refreshView));
}
private void refreshView(List<SearchResult> searchResults) {
//send the results back to the view layer to update a RecyclerView
viewLayer.updateResults(searchResults)
}
@Override
public void unbind() {
compositeDisposable.dispose();
}
「AndroidSchedulers.mainThread()」にこの力を観察することによって、:私は私はこのようなロジックを持ちたいかもしれビュー層に「プッシュ」のデータに設計されてプレゼンターを持っている場合、rxjavaを使用して依存関係:
import io.reactivex.android.schedulers.AndroidSchedulers
この時点で私の発表者はアンドロイドを知っています。私は避けたいものです。
プレゼンターがアンドロイド関連のものに依存しない状態で、結果がアンドロイドのUI(メイン)スレッド上のViewLayerに配信されることを保証するためのアドバイスされた方法はありますか?
たぶんViewLayerインタフェースは '観測getThread()のようないくつかの方法が必要ですか;'? – 0X0nosugar