代码之家  ›  专栏  ›  技术社区  ›  Kent

如何在Android中实现服务内部API调用

  •  0
  • Kent  · 技术社区  · 6 年前

    我试图从数据库中检索数据并将结果显示为toast消息(计划在工作后执行更多操作)。但是,它给出了错误-“意外挂起异常: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();
    
    
                }
            });
        }
    
    0 回复  |  直到 6 年前