Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/400.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2012/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 连续调用截击时出现内存异常_Java_Android_Exception_Out Of Memory_Android Volley - Fatal编程技术网

Java 连续调用截击时出现内存异常

Java 连续调用截击时出现内存异常,java,android,exception,out-of-memory,android-volley,Java,Android,Exception,Out Of Memory,Android Volley,每次连续调用volley并在RequestQueue RequestQueue=volley.newRequestQueue(getApplicationContext())处出错时,我都会遇到内存异常 像这样每5秒调用一次方法 handlerGetJockyLatLong = new Handler(); runnableJockyLatLong = new Runnable() { @Override p

每次连续调用volley并在RequestQueue RequestQueue=volley.newRequestQueue(getApplicationContext())处出错时,我都会遇到内存异常

像这样每5秒调用一次方法

handlerGetJockyLatLong = new Handler();
            runnableJockyLatLong = new Runnable() {
                @Override
                public void run() {
                    handlerGetJockyLatLong.postDelayed(runnableJockyLatLong, 10000);
                    getJockyLatLongFromBackEnd();
                }
            };
            handlerGetJockyLatLong.postDelayed(runnableJockyLatLong, 10000);
方法是:

private void getJockyLatLongFromBackEnd() {
    final String getJockyID_URL = getProfileInformationURL(getUserAccessToken(UserSideTrackingPage.this), UserID);
    Log.e("getJockyID_URL", getJockyID_URL);

    StringRequest request = new StringRequest(Request.Method.GET, getJockyID_URL, new Response.Listener<String>() {
        @Override
        public void onResponse(String response) {
            if (response != null && !response.startsWith("<HTML>")) {
                Log.e("getJocky_Url_Responce", response);
                //progressDialog.dismiss();
                try {
                    JSONObject jsonObject = new JSONObject(response);

                    JSONObject jsonObbjectError = jsonObject.getJSONObject("error");
                    String errorCode = jsonObbjectError.getString("code");
                    String errorMessage = jsonObbjectError.getString("message");

                    if (errorCode.equals("0")) {
                        if (jsonObject.has("data")) {
                            JSONObject jsonObjectData = jsonObject.getJSONObject("data");
                            Double latitude = Double.valueOf(jsonObjectData.getString("latitude"));
                            Double longitude = Double.valueOf(jsonObjectData.getString("longitude"));

                            globalGoogleMap.clear();
                            currentLocationMarker = CommonUtils.createMultipleMarkers(globalGoogleMap, latitude, longitude, "Jocky Location", R.drawable.current_location);

                            PickupLocationMarker = CommonUtils.createMultipleMarkers(globalGoogleMap, Double.valueOf(pickupLat), Double.valueOf(pickupLong), "Pickup Location", R.drawable.pickup_marker_icon);
                            DropLocationMarker = CommonUtils.createMultipleMarkers(globalGoogleMap, Double.valueOf(dropLong), Double.valueOf(dropLat), "Drop Location", R.drawable.drop_location_marker_icon);
                        }
                    } else {
                        Toast.makeText(getApplicationContext(), errorMessage, Toast.LENGTH_SHORT).show();
                    }

                } catch (JSONException e) {
                    e.printStackTrace();
                    Log.e("Exception", e.toString());
                }
            }

        }
    }, new Response.ErrorListener() {
        @Override
        public void onErrorResponse(VolleyError error) {
            Log.e("Error", error.toString());
        }
    });

    RequestQueue queue = Volley.newRequestQueue(getApplicationContext());
    queue.add(request);
}
private void getJockyLatLongFromBackEnd(){
最后一个字符串getJockyID_URL=getProfileInformationURL(getUserAccessToken(UserSideTrackingPage.this),UserID);
Log.e(“getJockyID_URL”,getJockyID_URL);
StringRequest=newStringRequest(request.Method.GET,getJockyID_URL,new Response.Listener()){
@凌驾
公共void onResponse(字符串响应){
if(response!=null&&!response.startsWith(“”){
Log.e(“getJocky\u Url\u response”,回复);
//progressDialog.disclose();
试一试{
JSONObject JSONObject=新JSONObject(响应);
JSONObject JSONOBJECTERROR=JSONObject.getJSONObject(“错误”);
String errorCode=jsonobjectError.getString(“代码”);
String errorMessage=jsonobjectError.getString(“消息”);
if(errorCode.equals(“0”)){
if(jsonObject.has(“数据”)){
JSONObject jsonObjectData=JSONObject.getJSONObject(“数据”);
Double latitude=Double.valueOf(jsonObjectData.getString(“latitude”);
Double longitude=Double.valueOf(jsonObjectData.getString(“经度”);
globalgologlemap.clear();
currentLocationMarker=CommonUtils.createMultipleMarkers(全球地图、纬度、经度、“赛奇位置”、R.drawable.current_位置);
PickupLocationMarker=CommonUtils.createMultipleMarkers(globalgoglemap,Double.valueOf(pickupLat),Double.valueOf(pickupLong),“拾取位置”,R.drawable.Pickup\u标记图标);
DropLocationMarker=CommonUtils.createMultipleMarkers(GlobalogleMap,Double.valueOf(dropLong),Double.valueOf(Dropat),“Drop Location”,R.drawable.Drop位置标记图标);
}
}否则{
Toast.makeText(getApplicationContext(),errorMessage,Toast.LENGTH_SHORT).show();
}
}捕获(JSONException e){
e、 printStackTrace();
Log.e(“异常”,例如toString());
}
}
}
},new Response.ErrorListener(){
@凌驾
公共无效onErrorResponse(截击错误){
Log.e(“Error”,Error.toString());
}
});
RequestQueue=Volley.newRequestQueue(getApplicationContext());
添加(请求);
}

请告诉我我做错了?我们不应该总是叫截击吗?或者我应该把截击放在singleton类中,这样我只能实例化一次?任何建议都可以。谢谢

尝试使用
static
RequestQueue,如下所示,我也经历过同样的情况。当我使用静电时,它对我有效

    public class name extends AppCompactActivity{
        static RequestQueue queue = Volley.newRequestQueue(getApplicationContext());

    public void yourmethod{
    //code here
    queue.add(request);
    }

}

尝试在这里使用
static
RequestQueue,如下所示,我也经历过同样的情况。当我使用静电时,它对我有效

    public class name extends AppCompactActivity{
        static RequestQueue queue = Volley.newRequestQueue(getApplicationContext());

    public void yourmethod{
    //code here
    queue.add(request);
    }

}

#Omar静态无法放入内部方法。我是否需要将该行放入类中?只需在方法外部创建一个静态RequestQueue对象。并尝试调用对象..不能在这样的常规类中调用应用程序上下文#Omar static不能放入方法中。我是否需要将该行放入类中?只需在方法外部创建一个静态RequestQueue对象。并尝试调用对象..您不能在这样的常规类中调用应用程序上下文您是否尝试过使用singleton?您是否尝试过使用singleton?