Java 请求截取http请求时发生OutOfMemoryError
在我的应用程序中,我每30秒检查一次电灯开关的状态。我使用截击通过http请求状态 我每收到10-15次请求,请在我的日志中运行此消息: 背景粘性并发标记扫描GC释放383213MB AllocSpace对象,30388KB LOS对象,36%空闲,6MB/10MB,暂停5.197ms总计47.892ms 在我多次收到此消息后,我的应用程序因此错误崩溃: 致命异常:主进程:de.resper.autoheim,PID:4522 java.lang.OutOfMemoryError:pthread_创建1040KB堆栈失败:重试 这是主活动中的代码:Java 请求截取http请求时发生OutOfMemoryError,java,android,httprequest,android-volley,Java,Android,Httprequest,Android Volley,在我的应用程序中,我每30秒检查一次电灯开关的状态。我使用截击通过http请求状态 我每收到10-15次请求,请在我的日志中运行此消息: 背景粘性并发标记扫描GC释放383213MB AllocSpace对象,30388KB LOS对象,36%空闲,6MB/10MB,暂停5.197ms总计47.892ms 在我多次收到此消息后,我的应用程序因此错误崩溃: 致命异常:主进程:de.resper.autoheim,PID:4522 java.lang.OutOfMemoryError:pthread
final Handler handler = new Handler();
handler.postDelayed(new Runnable() {
@Override
public void run() {
Log.d("DEBUG", "Check Light");
wzControl.checkLight();
if (wzControl.lightStatus) {
rlWz.setBackground(getDrawable(R.drawable.border_light));
} else {
rlWz.setBackground(getDrawable(R.drawable.border));
}
handler.postDelayed(this, 30000);
}
}, 1);
checkLight方法:
public void checkLight(){
helper.sendUrl("http://mediaserver:8083/fhem?cmd=set%20WZ.Licht1%20statusRequest");
RequestQueue queue = Volley.newRequestQueue(mContext);
JsonObjectRequest jsObjRequest = new JsonObjectRequest (Request.Method.GET, "http://mediaserver:8083/fhem?cmd=jsonlist2%20WZ.Licht1&XHR=1", null, new Response.Listener<JSONObject>() {
@Override
public void onResponse(JSONObject response) {
try {
String statValue = response.getJSONArray("Results").getJSONObject(0).getJSONObject("Readings").getJSONObject("state").getString("Value");
switch (statValue){
case "off":
lightStatus = false;
break;
case "on":
lightStatus = true;
break;
}
} catch (JSONException e) {
e.printStackTrace();
}
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {}
});
queue.add(jsObjRequest);
}
这可能是因为请求有时没有得到响应,而只是不断尝试,等等吗