我是Android和翻新版的newbee。
当我有多个活动的android时,我在调用enque
方法时遇到问题。
在一个示例中,我只有一个活动,下面的代码工作正常。我可以获取所需的字符串。
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import java.util.List;
import androidpractice.udayrepo.com.androidpractice.retrofit.APIClass;
import retrofit2.Call;
import retrofit2.Callback;
import retrofit2.Response;
import retrofit2.Retrofit;
import retrofit2.converter.gson.GsonConverterFactory;
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Log.d("Main","I am inside the Main");
Retrofit retorfit=new Retrofit.Builder()
.baseUrl(APIClass.BASE_URL)
.addConverterFactory(GsonConverterFactory.create())
.build();
APIClass api=retorfit.create(APIClass.class);
Call<List<String>> call=api.getClassSubjectMapping();
call.enqueue(new Callback<List<String>>() {
@Override
public void onResponse(Call<List<String>> call, Response<List<String>> response) {
Log.d("Method","I am inside the method");
List<String> subjects=response.body();
for(String str:subjects)
Log.d("Subject name : ",str);
}
@Override
public void onFailure(Call<List<String>> call, Throwable t) {
Log.d("Error",t.getMessage());
}
});
}
}
在另一个示例中,我有两个活动Activity1和Activity2。当我单击Activity1时,我导航到Activity2。我复制了上面的相同代码。我可以调试“ Call<List<String>> call=api.getClassSubjectMapping();
”,但是当执行call.enqueue
时,只是从该方法中出来。在执行该步骤时,它甚至都没有进入onResponse
方法内部。
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.util.Log;
import java.util.List;
import classelearn.udayrepo.com.classelearn.api.APIClass;
import retrofit2.Call;
import retrofit2.Callback;
import retrofit2.Response;
import retrofit2.Retrofit;
import retrofit2.converter.gson.GsonConverterFactory;
public class LearningSelector_Activity extends AppCompatActivity {
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.learning_selector_layout);
Retrofit retorfit=new Retrofit.Builder()
.baseUrl(APIClass.BASE_URL)
.addConverterFactory(GsonConverterFactory.create())
.build();
APIClass api=retorfit.create(APIClass.class);
Call<List<String>> call=api.getClassSubjectMapping();
call.enqueue(new Callback<List<String>>() {
@Override
public void onResponse(Call<List<String>> call, Response<List<String>> response) {
Log.d("Method","I am inside the method");
List<String> subjects=response.body();
for(String str:subjects)
Log.d("Subject name : ",str);
}
@Override
public void onFailure(Call<List<String>> call, Throwable t) {
Log.d("Error",t.getMessage());
}
});
}
}
不确定Android,改造或Sprint引导是否有问题。
有人可以帮我解决我哪里出问题吗?