谷歌最近宣布了新的WorkManager架构组件.通过WorkManager在doWork()课堂上实现,可以很容易地安排同步工作,但是如果我想在后台进行一些异步工作呢?例如,我想使用Retrofit进行网络服务调用.我知道我可以发出同步网络请求,但它会阻塞线程并且感觉不对.有没有解决方案,或者目前还不支持?
我不希望我的应用依赖Google API.是否有任何开源替代品FusedLocationProviderApi允许组合标准GPS和网络提供商?
api android location location-provider fusedlocationproviderapi
我正在尝试使用MVP架构在Android应用程序中实现一个屏幕,并在View端使用RxJava和RxBinding.
基本上我有2个Spinners,1个TextEdit和一个默认禁用的按钮.我想在Spinners选择了项目且文本字段不为空时启用该按钮.这是代码:
Observable.combineLatest(
RxAdapterView.itemSelections(mFirstSpinner),
RxAdapterView.itemSelections(mSecondSpinner),
RxTextView.textChanges(mEditText),
new Func3<Integer, Integer, CharSequence, Boolean>() {
@Override
public Boolean call(Integer first, Integer second, CharSequence value) {
return !TextUtils.isEmpty(value);
}
}).subscribe(new Action1<Boolean>() {
@Override
public void call(Boolean enable) {
mButton.setEnabled(enable);
}
});
Run Code Online (Sandbox Code Playgroud)
现在的问题是如何将其整合到MVP模式中.理想情况下,启用按钮的"业务逻辑"应该在演示者中.实现这一目标的最佳方法是什么?我正在考虑将原始观察者以某种方式传递给演示者(侧面问题是如何?),演示者将组合这些观察者,并且它将具有启用按钮的逻辑.最后,它只会调用View来修改按钮状态.
还有更好的选择吗?在View端有没有RxJava MVP的好例子?
android ×3
android-architecture-components ×1
api ×1
location ×1
mvp ×1
rx-android ×1
rx-binding ×1
rx-java ×1