Android studio 改装,呼叫。排队
这是我的密码:Android studio 改装,呼叫。排队,android-studio,retrofit,call,Android Studio,Retrofit,Call,这是我的密码: retrofit2.Call<User> call = MainActivity.apiInterface.performUserLogin (username,password); Log.d(TAG,"retrofit"); call.enqueue (new Callback<User> () { @Override public void onResponse( retr
retrofit2.Call<User> call = MainActivity.apiInterface.performUserLogin (username,password);
Log.d(TAG,"retrofit");
call.enqueue (new Callback<User> () {
@Override
public void onResponse( retrofit2.Call<User> call, Response<User> response )
{
Log.d (TAG,"in");
if(response.body ().getResponse ().equals ("ok"))
{
Log.d (TAG,"ok");
MainActivity.prefConfig.writeLoginStatus (true);
loginFormActivityLisener.performLogin (response.body ().getName ());
}
else if(response.body ().getResponse ().equals ("failed"))
{
MainActivity.prefConfig.displayToast ("Login Failed... Please try again...");
Log.d(TAG,"failed");
}
}
@Override
public void onFailure( retrofit2.Call<User> call, Throwable t ) {
}
});
2.Call Call=MainActivity.apiInterface.performUserLogin(用户名、密码);
日志d(标签“改装”);
call.enqueue(新回调(){
@凌驾
公共void onResponse(2.呼叫、响应)
{
日志d(标记“in”);
if(response.body().getResponse().equals(“ok”))
{
Log.d(标记“ok”);
MainActivity.prefConfig.writeLoginStatus(true);
loginformactivitylesener.performLogin(response.body().getName());
}
else if(response.body().getResponse().equals(“failed”))
{
MainActivity.prefConfig.displayToast(“登录失败…请重试…”);
Log.d(标记“失败”);
}
}
@凌驾
公共失效失效失效(改装2.呼叫,可丢弃t){
}
});
我有个问题,为什么call.enqueue不工作?好像它不在那里。它什么也做不了 改装的enqueue()函数异步工作。它是一个后台任务,在后台线程上运行请求。如果调试代码,很可能会看到调试器跳过排队调用并继续执行下一行。后台线程完成后,可能会跳过几行,然后返回call.enqueue()
如果要使用前台任务,可以选择execute()函数,或者有其他实现等待主线程直到回调响应,比如使用事件(请参阅EventBus库) 您是否尝试过检查
logcat
/添加断点
是,它跳过了在onFailure
中添加日志语句的步骤,并检查其是否被调用将不起任何作用