相关疑难解决方法(0)

对重新创建的活动实施Retrofit回调的最佳实践?

我正在转向Retrofit并尝试理解使用异步回调的正确架构.

例如,我有一个界面:

interface RESTService{
    @GET("/api/getusername")
    void getUserName(@Query("user_id") String userId, 
                     Callback<Response> callback);
}
Run Code Online (Sandbox Code Playgroud)

我从主要活动中运行这个:

RestAdapter restAdapter = new RestAdapter.Builder()
        .setServer("WEBSITE_URL")     
        .build();
RESTService api = restAdapter.create(RESTService.class);
api.getUserName(userId, new Callback<Response> {...});
Run Code Online (Sandbox Code Playgroud)

然后用户旋转设备,我有新创建的活动......这里发生了什么?如何获得对新活动的响应(我假设api调用后台将比第一个活动生命执行更长时间).也许我必须使用静态回调实例或者什么?请告诉我正确的方法......

rest android web-services retrofit

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

服务方法不能返回void.改造

这是我在Interface中的方法.我正在调用此函数,但app崩溃时出现此异常:

引起:java.lang.IllegalArgumentException:服务方法不能返回void.方法RestInterface.getOtp

//post method to get otp for login
@FormUrlEncoded
@POST("/store_login")
void getOtp(@Header("YOUR_APIKEY") String apikey, @Header("YOUR_VERSION") String appversion,
            @Header("YOUR_VERSION") String confiver, @Field("mobile") String number, Callback<Model> cb);
Run Code Online (Sandbox Code Playgroud)

这是我调用此函数的代码

Retrofit retrofit = new Retrofit.Builder()
            .baseUrl(API_URL)
            .build();

    RestInterface restApi = retrofit.create(RestInterface.class);
    restApi.getOtp("andapikey", "1.0", "1.0", "45545845454", new Callback<Model>() {

        @Override
        public void onResponse(Response<Model> response) {

        }

        @Override
        public void onFailure(Throwable t) {

        }
    });
Run Code Online (Sandbox Code Playgroud)

retrofit

44
推荐指数
3
解决办法
2万
查看次数

标签 统计

retrofit ×2

android ×1

rest ×1

web-services ×1