Я новичок в Android и Retrofit.
У меня есть проблема, вызывающая метод enque
, когда у меня есть Android с более чем одним действием.
В одном примере у меня есть одинкод активности и ниже работает нормально.Я могу получить необходимые строки.
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.
Может кто-нибудь, пожалуйста, помогите мне гдея иду не так?