改造2入队方法运行2次

改造2入队方法运行2次,第1张

概述我是翻新库的新手.我正在开发一个必须进行多个API调用的应用程序,但是当我尝试进行第一个API调用时,这个问题困扰着我.我面临的问题是,每当我过去用来调用改造的异步调用方法时,onResponse方法中的功能就会运行2次…这是我异步调用API调用时的代码…finalApiModuleapiService

我是翻新库的新手.我正在开发一个必须进行多个API调用的应用程序,但是当我尝试进行第一个API调用时,这个问题困扰着我.

我面临的问题是,每当我过去用来调用改造的异步调用方法时,onResponse方法中的功能就会运行2次…

这是我异步调用API调用时的代码…

final APIModule APIService = APIServiceGenerator.createService(APIModule.class);Call <ConfigResponse> call = APIService.getConfig();call.enqueue(new Callback<ConfigResponse>() {  @OverrIDe  public voID onResponse(Call<ConfigResponse> call, Response<ConfigResponse> response) {    try {        if (response.isSuccessful()) {            Log.e("mytag", "This is running");        }    } catch(Exception e) {        e.printstacktrace();    }  }  @OverrIDe  public voID onFailure(Call<ConfigResponse> call, Throwable t) {    e.printstacktrace();  }});

在设备上运行该应用程序后,当我看到我的androID studio记录器时,它就会向我显示日志消息-

E/mytag: This is runningE/mytag: This is running

似乎在这里它运行了2次!

我不明白为什么它要运行2次.
这个你能帮我吗…

只是为了获得更多帮助…
我已经实现了这样的代码.

APIModule接口(在其中定义了我的API调用URL)

public abstract interface APIModule {  @GET("config")  Call<ConfigResponse> getConfig();}

APIServiceGenerator像这样-

public class APIServiceGenerator {public static final String API_BASE_URL = "https://www.example.com/";private static OkhttpClIEnt httpClIEnt = new OkhttpClIEnt.Builder()        .addInterceptor(new Interceptor() {            @OverrIDe            public okhttp3.Response intercept(Chain chain) throws IOException {                Request newRequest = chain.request().newBuilder().addheader("App-Secret", "some-secret-key").build();                return chain.proceed(newRequest);            }        })        .addInterceptor(new httpLoggingInterceptor().setLevel(httpLoggingInterceptor.Level.BODY)) // Just For logging        .readTimeout(60, TimeUnit.SECONDS)        .connectTimeout(60, TimeUnit.SECONDS)        .build();Gson gson = new GsonBuilder()        .registerTypeAdapterFactory(new ArrayAdapterFactory())        .create();private static Retrofit.Builder builder =        new Retrofit.Builder()                .baseUrl(API_BASE_URL)                .addConverterFactory(GsonConverterFactory.create(new GsonBuilder().registerTypeAdapterFactory(new ArrayAdapterFactory()).create()));public static <S> S createService(Class<S> serviceClass) {    Retrofit retrofit = builder.clIEnt(httpClIEnt).build();    return retrofit.create(serviceClass);}public static Retrofit retrofit() { // For Error Handing when non-OK response is received from Server    OkhttpClIEnt httpClIEnt = new OkhttpClIEnt.Builder().build();    OkhttpClIEnt clIEnt = httpClIEnt;    return builder.clIEnt(clIEnt).build();}}

解决方法:

终于我解决了我的问题.
这不是翻新库的问题.. !!

其实这是我的坏事.我打开了两次片段(在回答这个问题之前我不知道)…
这就是为什么片段中的代码运行两次的原因,这让我认为改造响应运行了两次…

总结

以上是内存溢出为你收集整理的改造2入队方法运行2次全部内容,希望文章能够帮你解决改造2入队方法运行2次所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1120678.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-29
下一篇 2022-05-29

发表评论

登录后才能评论

评论列表(0条)

保存