Android 如何处理OutOfMemoryError 1040KB堆栈失败此错误

Android 如何处理OutOfMemoryError 1040KB堆栈失败此错误,android,event-handling,out-of-memory,Android,Event Handling,Out Of Memory,我使用改型将存储在服务器数据库中的一些数据发布到服务器。问题是当API命中40到50次之后,我发布代码和错误,请检查并建议我解决问题和崩溃的正确方法。错误是: java.lang.OutOfMemoryError: pthread_create (1040KB stack) failed: Try again at java.lang.Thread.nativeCreate(Native Method) at java.lang.Thread.start(Thread.java:

我使用改型将存储在服务器数据库中的一些数据发布到服务器。问题是当API命中40到50次之后,我发布代码和错误,请检查并建议我解决问题和崩溃的正确方法。错误是:

java.lang.OutOfMemoryError: pthread_create (1040KB stack) failed: Try again
    at java.lang.Thread.nativeCreate(Native Method)
    at java.lang.Thread.start(Thread.java:733)
    at java.util.concurrent.ThreadPoolExecutor.addWorker(ThreadPoolExecutor.java:975)
    at java.util.concurrent.ThreadPoolExecutor.execute(ThreadPoolExecutor.java:1393)
    at retrofit.RestAdapter$RestHandler.invoke(RestAdapter.java:276)
    at java.lang.reflect.Proxy.invoke(Proxy.java:1006)
    at $Proxy0.getRideDetail(Unknown Source)
    at qwykr.rydier.interactorImpl.HomeScreenInteractorImpl.checkRideStatus(HomeScreenInteractorImpl.java:149)
    at qwykr.rydier.interactorImpl.HomeScreenInteractorImpl$6.success(HomeScreenInteractorImpl.java:189)
    at qwykr.rydier.interactorImpl.HomeScreenInteractorImpl$6.success(HomeScreenInteractorImpl.java:149)
    at retrofit.CallbackRunnable$1.run(CallbackRunnable.java:45)
    at android.os.Handler.handleCallback(Handler.java:873)
    at android.os.Handler.dispatchMessage(Handler.java:99)
    at android.os.Looper.loop(Looper.java:193)
    at android.app.ActivityThread.main(ActivityThread.java:6669)
    at java.lang.reflect.Method.invoke(Native Method)
    at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:858)
这是改装代码:第一行碰撞碰撞。我还将使用线程和后台方法来处理应用程序和数据。请提出正确的想法

 RetroUtils.getHostAdapter(activity,ApiEndpointInterface.URL).create(ApiEndpointInterface.class).getRideDetail(rideID, new Callback<ArringDriverResponse>() {
                @Override
                public void success(ArringDriverResponse arringDriverResponse, Response response) {

                }

                @Override
                public void failure(RetrofitError retrofitError) {
                    System.out.println("RdieM Ain   "+retrofitError.getMessage());
                }
            });

1:在清单应用程序部分添加以下内容

   android:largeHeap="true"> 

2:1号是临时解决方案,你必须找出真正的原因并加以解决。你可以使用一个库来跟踪内存泄漏

pthread_create failed看起来并不是堆太小的问题——相反……您是否尝试过leakcanary库?这很容易。它将帮助您找出内存泄漏。@umer请尝试演示一些处理该问题的示例data@MohitLakhanpal你是没有经验的开发人员,我向你展示了如何解决这个问题有两种方法,请尝试leakcanary找到内存泄漏的地方并解决它。'40到50次'?递归地?@ADM是的,有时候它是属于你的。你不应该把这么多电话排在队列里,这太荒谬了。你打那么多电话有什么用。您应该寻找一种优雅的方法来执行此操作。@ADM尝试展示一些优雅的方法示例?@ADM是处理程序还是线程是控制内存异常错误的方法