小编mhd*_*ban的帖子

处理Rxjava 2中的网络错误 - 改造2

我们如何处理Rxjava2中的不同网络错误?

我们曾经检查过throwable的实例,如果它是IOException或HttpException返回Rxjava 1,但是,在RxJava 2中,throwable错误是GaiException类型.

代码段

RestAPI restAPI = RetrofitHelper.createRetrofitWithGson().create(RestAPI.class);
Observable<BaseResponseTourPhoto> observable = restAPI.fetchData("Bearer " + getAccessToken(), "2", "" + page)
        .subscribeOn(Schedulers.io())
        .observeOn(AndroidSchedulers.mainThread());

Disposable subscription = observable.subscribe(BaseResponse-> {
    onLoadingFinish(isPageLoading, isRefreshing);
    onLoadingSuccess(isPageLoading, BaseResponse);
    writeToRealm(BaseResponse.getData());
}, error -> {
    onLoadingFinish(isPageLoading, isRefreshing);
    onLoadingFailed(error);
});

mCompositeDisposable = new CompositeDisposable();
mCompositeDisposable.add(subscription);
unsubscribeOnDestroy(mCompositeDisposable);
Run Code Online (Sandbox Code Playgroud)

参考:https ://github.com/square/retrofit/issues/690 https://android.googlesource.com/platform/libcore/+/5d930ca/luni/src/main/java/android/system/GaiException.java

rx-java okhttp retrofit2 okhttp3 rx-java2

8
推荐指数
1
解决办法
8617
查看次数

如何在Uber和Lyft等地图上附上灵活的标记?

如何在Uber和Lyft等地图上附上灵活的标记?我正在使用谷歌地图v2.

基本上,我想在地图上显示标记,同时在移动地图时更改标记的位置.

编辑:

好的,我解决了我的问题.

第一步:将imageview添加到相同的布局和位置等于center.第二:获取地图中心的坐标使用以下方法

1-在我的情况下获取viewgroup(FrameLayout)地图片段所在的位置.

FrameLayout myContainer = (FrameLayout) findViewById(R.id.content_frame);
int mapHeight = myContainer.getHeight();
int mapWidth = myContainer.getWidth();
Run Code Online (Sandbox Code Playgroud)

2-使用setOnCameraChangeListener并在相机上更改获取坐标:

LatLng center = mMap.getCameraPosition().target;
Run Code Online (Sandbox Code Playgroud)

android google-maps google-maps-markers google-maps-api-2 android-maps-v2

7
推荐指数
1
解决办法
1万
查看次数

具有特定页面索引的分页库数据源

关于arch中的分页库。成分

它具有三个不同的数据源:

  1. PageKeyedDataSource:当请求需要下一个/上一个索引键时。
  2. ItemKeyedDataSource:当请求需要一个项目作为键时。
  3. PositionalDataSource:当请求需要索引来获取下一批时。

如果后端响应不支持下一个/上一个索引键而只支持当前页面,则使用哪个。当响应如下:

{
    "status": "success",
    "response": "1",
    "message": "Data fetched successfully",
    "data": {
        "total": 2,
        "per_page": "5",
        "page": 1,
        "items": [],
        "last_page": 1,
        "has_more": false
    }
}
Run Code Online (Sandbox Code Playgroud)

paging android android-architecture-components android-jetpack androidx

5
推荐指数
1
解决办法
1739
查看次数