【发布时间】:2022-07-27 15:11:31
【问题描述】:
我正在开发华为 HarmonyOS 应用程序,我正在尝试使用 RxJava 实现一个用于后台任务的基类。我的问题是不知道怎么在主线程上观察。
在常规 Android 上,我会使用 AndroidSchedulers.mainThread()。
但是我可以在 HarmonyOS 上分别使用什么基本的 java 应用程序?
public abstract class BaseUseCase<I, O> {
private final CompositeDisposable disposables;
public BaseUseCase() {
this.disposables = new CompositeDisposable();
}
/**
* Builds an {@link Observable} which will be used when executing the current {@link BaseUseCase}.
*/
public abstract Observable<O> observable(I input);
/**
* Executes the current use case.
*
* @param observer {@link DisposableObserver} which will be listening to the observable build
* by {@link #observable(I)} ()} method.
* @param input Parameters (Optional) used to build/execute this use case.
*/
public void execute(DisposableObserver<O> observer, I input) {
Preconditions.checkNotNull(observer);
final Observable<O> observable = observable(input)
.subscribeOn(Schedulers.io())
.observeOn( ??? ); <- What here???
addDisposable(observable.subscribeWith(observer));
}
/**
* Dispose from current {@link CompositeDisposable}.
*/
private void addDisposable(Disposable disposable) {
Preconditions.checkNotNull(disposable);
Preconditions.checkNotNull(disposables);
disposables.add(disposable);
}
【问题讨论】:
-
我对HarmonyOS不熟悉。基于文档,它有一个
TaskDispatcher uiTaskDispatcher = getUITaskDispatcher();和TaskDispatcher有一个asyncDispatch方法。我想你可以在它上面实现一个java.util.concurrent.Executor并将它交给Schedulers.from而不会有太多麻烦。 -
我可以确认要实现的功能是什么?会调用哪些接口?
标签: java android rx-java huawei-developers harmonyos