Модифицированный вызов не вызывается, когда я звоню из приложения Android с несколькими действиями - PullRequest
0 голосов
/ 15 сентября 2018

Я новичок в 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.

Может кто-нибудь, пожалуйста, помогите мне гдея иду не так?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...