Android 截击给我内存不足的异常后,我提出了大量的请求与大量的数据
我有一个页面查看器,在我有列表视图的每个页面中,这个列表视图将有10条使用web服务的记录,因此页面查看器使用web服务的三个调用来填充三个页面(当前页面、左侧页面和右侧页面),但在我进行了大量滑动之后,我得到了以下异常:Android 截击给我内存不足的异常后,我提出了大量的请求与大量的数据,android,out-of-memory,android-volley,Android,Out Of Memory,Android Volley,我有一个页面查看器,在我有列表视图的每个页面中,这个列表视图将有10条使用web服务的记录,因此页面查看器使用web服务的三个调用来填充三个页面(当前页面、左侧页面和右侧页面),但在我进行了大量滑动之后,我得到了以下异常: java.lang.OutOfMemoryError: pthread_create (stack size 16384 bytes) failed: Try again at java.lang.VMThread.create(Native Meth
java.lang.OutOfMemoryError: pthread_create (stack size 16384 bytes) failed: Try again
at java.lang.VMThread.create(Native Method)
at java.lang.Thread.start(Thread.java:1029)
at com.android.volley.RequestQueue.start(RequestQueue.java:142)
at com.android.volley.toolbox.Volley.newRequestQueue(Volley.java:66)
at com.android.volley.toolbox.Volley.newRequestQueue(Volley.java:78)
at com.imona.android.entities.Record.<init>(Record.java:57)
at com.imona.android.webservices.OperationalDataRest$1.onResponse(OperationalDataRest.java:109)
at com.imona.android.webservices.OperationalDataRest$1.onResponse(OperationalDataRest.java:85)
at com.android.volley.toolbox.JsonRequest.deliverResponse(JsonRequest.java:65)
at com.android.volley.ExecutorDelivery$ResponseDeliveryRunnable.run(ExecutorDelivery.java:99)
at android.os.Handler.handleCallback(Handler.java:733)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:136)
at android.app.ActivityThread.main(ActivityThread.java:5017)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:515)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:779)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:595)
at dalvik.system.NativeStart.main(Native Method)
java.lang.OutOfMemoryError:pthread_创建(堆栈大小16384字节)失败:重试
创建(本机方法)
在java.lang.Thread.start(Thread.java:1029)处
位于com.android.volley.RequestQueue.start(RequestQueue.java:142)
位于com.android.volley.toolbox.volley.newRequestQueue(volley.java:66)
位于com.android.volley.toolbox.volley.newRequestQueue(volley.java:78)
位于com.imona.android.entities.Record.(Record.java:57)
位于com.imona.android.webservices.OperationalDataRest$1.onResponse(OperationalDataRest.java:109)
在com.imona.android.webservices.OperationalDataRest$1.onResponse(OperationalDataRest.java:85)
位于com.android.volley.toolbox.JsonRequest.deliverResponse(JsonRequest.java:65)
位于com.android.volley.ExecutorDelivery$ResponseDeliveryRunnable.run(ExecutorDelivery.java:99)
位于android.os.Handler.handleCallback(Handler.java:733)
位于android.os.Handler.dispatchMessage(Handler.java:95)
位于android.os.Looper.loop(Looper.java:136)
位于android.app.ActivityThread.main(ActivityThread.java:5017)
位于java.lang.reflect.Method.Invokenactive(本机方法)
位于java.lang.reflect.Method.invoke(Method.java:515)
在com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:779)上
位于com.android.internal.os.ZygoteInit.main(ZygoteInit.java:595)
在dalvik.system.NativeStart.main(本机方法)
如何初始化请求队列
?我怀疑您正在为每个选项卡创建RequestQueue
s。如果是这种情况,请将程序更改为使用所有选项卡中的RequestQueue
的一个公共实例。您需要在活动中初始化并保留它,并从每个选项卡向它添加请求。我使用静态队列,而不是在我的记录类中创建新队列
我把代码从
public class Record {
private RequestQueue RecordSyncQueue = Volley.newRequestQueue(ImonaAndroidApp.app);
}
到
您的查看寻呼机中有图像吗?您是否在应用程序中扩展了
FragmentPagerAdapter
?如果不是,您的意思是可以同时向多个请求队列调用的服务器发出多个请求。是吗?我在看你的帖子之前发现了答案,不过非常感谢,这是一个很棒的答案:)我该怎么做?有这样的例子吗?我也面临同样的问题。我想这是因为我在一项活动中放了太多截击的例子。我也面临着这类问题。如果有任何一个例子,那么请让我们知道,以了解发生了什么。在我的例子中,我创建了截击的基类,它扩展了每个活动,并将每个时间上下文传递给截击函数。详细代码在这里
public class Record {
private static RequestQueue RecordSyncQueue = Volley.newRequestQueue(ImonaAndroidApp.app);
}