Как сделать вызовы Retrofit API внутри Сервиса в Android - PullRequest
0 голосов
/ 23 мая 2018

Я пытаюсь извлечь данные из базы данных и отобразить результат в виде всплывающего сообщения (планирую сделать больше после того, как я его заработаю). Однако, оно дает мне ошибку - «неожиданное ожидающее исключение: java.lang.ArrayIndexOutOfBoundsException"и говорит мне, что дело таково:" Call> call = apiServiceNotif.getNotifications (id, onReceive); "

Я вызываю функцию обратного вызова внутри [onStartCommand] следующим образом:

@Override
public int onStartCommand(Intent intent, int flags, int startId) {
      getMessage("1"); //for testing
      return START_STICKY;
}

Я протестировал функцию обратного вызова в другом классе и работал нормально.Я впервые работаю со службами, поэтому, честно говоря, я немного растерялся.Любая помощь очень ценится.

Вот моя функция обратного вызова:

public void getMessage(String id){
        ApiServiceMessage apiServiceMessage = ApiClient.getClient().create(ApiServiceMessage.class);
        Call<List<Messsages>> call = apiServiceMessage.getMessages(id);
        call.enqueue(new Callback<List<Messages>>() {
            @Override
            public void onResponse(Call<List<Messages>> call,
                                   Response<List<Messages>> response) {
                List<Messages> messages= response.body();

                 for(Messages m: messages){
                     Toast(getApplicationContext(), m.getMessageTitle + " " + m.getMessageContent, Toast.LENGTH_LONG).show();
                 }
                }
            }

            @Override
            public void onFailure(Call<List<Messages>> call, Throwable t) {
                Toast.makeText(getApplicationContext(), "Failed to load." + t, Toast.LENGTH_LONG).show();


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