如何解决当从其他类调用时,Volley Response返回null
我对android开发还是相当陌生的。
我试图通过使用其他类来调用API并使用Global Application类来存储响应,然后在API调用之后调用应用程序对象来存储JSON响应,来对当前项目进行模块化。
但是,当我尝试从我在API类中创建的应用程序对象获取JSON响应时,该应用程序崩溃了。在仔细考虑了一段时间之后,我尝试在API类本身中检查返回的API响应,一次是在onResponse
方法中,一次是在类结束之前。我看到该方法中的API响应非常好,但是在调用方法的结尾附近被调用时为null。
为什么我不能从API类本身正确更新JSON响应?如果可以,怎么办?
先谢谢了。 :3
APICall.java
public class APICall
{
public RequestQueue mRequestQueue;
globalData data;
public void call(Application application)
{
String API = application.getResources().getString(R.string.BASE_API);
data = (globalData) application;
JsonObjectRequest apiRequest = new JsonObjectRequest(
Request.Method.GET,API,null,response -> {
Log.i("API Response",response.toString());
data.setResponse(response);
},error -> error.printstacktrace()
);
mRequestQueue.add(apiRequest);
Log.i("API Response recheck",data.getResponse().toString());
}
}
globalData.java
public class globalData extends Application
{
private JSONObject response;
public JSONObject getResponse() {
return response;
}
public void setResponse(JSONObject response) {
this.response = response;
}
}
MainActivity.java➡️setUI()
public void setUI()
{
apiCall = new APICall();
apiCall.mRequestQueue = Volley.newRequestQueue(getApplicationContext());
apiCall.call(this.getApplication());
JSONObject apiResponse = data.getResponse();
ImageView memeView = findViewById(R.id.meme_view);
TextView caption = findViewById(R.id.caption);
data = (globalData) getApplication();
Log.i("API Response in Main",apiResponse.toString());
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。