【发布时间】:2016-03-27 11:42:08
【问题描述】:
应用程序每 10 秒使用来自网络提供商的 gps 位置进行一次 api 调用。并且用户可以执行几个 api 调用。
应用程序因互联网或互联网连接不足而崩溃(设备数据访问) 是否有适当的方法来防止应用程序崩溃并保持 api 请求直到互联网网络可用。
我在这里发布我的崩溃报告堆栈跟踪
java.util.concurrent.RejectedExecutionException:
Task android.os.AsyncTask$3@4206a5b0 rejected from java.util.concurrent.ThreadPoolExecutor@41e97858[Running, pool size = 9, active threads = 9, queued tasks = 128, completed tasks = 2]
at java.util.concurrent.ThreadPoolExecutor$AbortPolicy.rejectedExecution(ThreadPoolExecutor.java:2011)
at java.util.concurrent.ThreadPoolExecutor.reject(ThreadPoolExecutor.java:793)
at java.util.concurrent.ThreadPoolExecutor.execute(ThreadPoolExecutor.java:1339)
at android.os.AsyncTask.executeOnExecutor(AsyncTask.java:590)
at com.pickme.driver.service.LocationUpdate$LocationUpdateTask$1.run(LocationUpdate.java:216)
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:5333)
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:895)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:711)
at dalvik.system.NativeStart.main(Native Method)
【问题讨论】:
-
您是使用 kitkat 还是更低的设备来测试应用程序?试用 android 5.0(lollipop)..
-
使用 kitkat 及更低的设备
-
对我来说,崩溃是由这行引起的:
new pingHTTP(connURL.get(i),i).executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR);。这是我的FATAL EXCEPTION:java.util.concurrent.RejectedExecutionException: Task android.os.AsyncTask$3@bab00da rejected from java.util.concurrent.ThreadPoolExecutor@4adf90b[Running, pool size = 9, active threads = 9, queued tasks = 128, completed tasks = 1061] at java.util.concurrent.ThreadPoolExecutor$AbortPolicy.rejectedExecution(ThreadPoolExecutor.java:2078) at java.util.concurrent.ThreadPoolExecutor.reject(ThreadPoolExecutor.java:843)。 -
@JaimeMontoya asyncloader 现在可用。请使用异步加载器自行处理线程池。
标签: android multithreading android-asynctask threadpool threadpoolexecutor