【发布时间】:2020-06-29 12:15:10
【问题描述】:
我需要返回从手机中检索到的联系人的值,并使用 observable。问题在于返回值。
我在桥中有下一个方法:
@JavascriptInterface
public String getFavoriteUsers() {
return getBridgeHelper().getFavoriteUsers();
}
它在帮助器(这是如何执行任务的类)和该帮助器内部调用方法:
@SuppressLint("CheckResult")
public String getFavoriteUsers() {
Observable.fromCallable(() -> {
SharedPreferences sp = getContext().getSharedPreferences(Constants.SHARED_PREFERENCES_NAME, Context.MODE_PRIVATE);
String userIdStores = sp.getString(Constants.SP_FAVOURITES, "[]");
return new Gson().toJson(ContactsManager.findContactsById(ContactsData.getInstance().contactsStored, userIdStores));
})
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(
result -> returnObservedContacts(result),
throwable -> LoggerManager.handlesError(TAG, throwable, throwable.getMessage())
);
}
所以,我需要将此结果返回到上一个桥接器,但我不知道该怎么做。
谢谢
解决方案:
解决方案是从 Observable 中移除 subscribe 并在末尾添加 blockingFirst。然后,我们可以让 observable 返回一个值。
【问题讨论】:
标签: android return observable rx-java