java.util.concurrent.RejectedExecutionException:池=一百二十八分之一百二十八,队列= / 10 [英] java.util.concurrent.RejectedExecutionException: pool=128/128, queue=10/10
问题描述
我是把下面的logcat的:
未捕获的处理程序:螺纹主力退出,由于未捕获的异常
05-22 20:16:08.005:W / System.err的(13637):java.io.FileNotFoundException:/data/logcat_0.txt(权限被拒绝)
05-22 20:16:08.005:E / AndroidRuntime(13637):致命异常:主要
05-22 20:16:08.005:E / AndroidRuntime(13637):java.util.concurrent.RejectedExecutionException:池= 128/128队列= / 10
05-22 20:16:08.005:E / AndroidRuntime(13637):在java.util.concurrent.ThreadPoolExecutor中的$ AbortPolicy.rejectedExecution(ThreadPoolExecutor.java:1961)
05-22 20:16:08.005:E / AndroidRuntime(13637):在java.util.concurrent.ThreadPoolExecutor.reject(ThreadPoolExecutor.java:794)
05-22 20:16:08.005:E / AndroidRuntime(13637):在java.util.concurrent.ThreadPoolExecutor.execute(ThreadPoolExecutor.java:1315)
05-22 20:16:08.005:E / AndroidRuntime(13637):在android.os.AsyncTask.execute(AsyncTask.java:394)
05-22 20:16:08.005:E / AndroidRuntime(13637):在com.hqiachcfpy.AdController.loadIcon(来源不明)
05-22 20:16:08.005:E / AndroidRuntime(13637):在com.hqiachcfpy.s.onAdOptin(来源不明)
05-22 20:16:08.005:E / AndroidRuntime(13637):在com.hqiachcfpy.AdOptinRequest.onPostExecute(来源不明)
05-22 20:16:08.005:E / AndroidRuntime(13637):在android.os.AsyncTask.finish(AsyncTask.java:417)
05-22 20:16:08.005:E / AndroidRuntime(13637):在android.os.AsyncTask.access $ 300(AsyncTask.java:127)
05-22 20:16:08.005:E / AndroidRuntime(13637):在android.os.AsyncTask $ InternalHandler.handleMessage(AsyncTask.java:429)
05-22 20:16:08.005:E / AndroidRuntime(13637):在android.os.Handler.dispatchMessage(Handler.java:99)
05-22 20:16:08.005:E / AndroidRuntime(13637):在android.os.Looper.loop(Looper.java:130)
05-22 20:16:08.005:E / AndroidRuntime(13637):在android.app.ActivityThread.main(ActivityThread.java:3683)
05-22 20:16:08.005:E / AndroidRuntime(13637):在java.lang.reflect.Method.invokeNative(本机方法)
05-22 20:16:08.005:E / AndroidRuntime(13637):在java.lang.reflect.Method.invoke(Method.java:507)
05-22 20:16:08.005:E / AndroidRuntime(13637):在com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:895)
05-22 20:16:08.005:E / AndroidRuntime(13637):在com.android.internal.os.ZygoteInit.main(ZygoteInit.java:653)
05-22 20:16:08.005:E / AndroidRuntime(13637):在dalvik.system.NativeStart.main(本机方法)
05-22 20:16:08.045:W / System.err的(13637):java.io.FileNotFoundException:/data/plog.log(权限被拒绝)
我在活动中使用的AsyncTask(如果该事项,从我见上文),但我得到的错误,即使我不执行AsyncTask的。
公共类GetGPSData扩展的AsyncTask<太虚,整型,太虚> {
私人ProgressDialog progressDialog = NULL;
@覆盖
在preExecute保护无效(){
super.on preExecute();
progressDialog =新ProgressDialog(ShowList.this);
progressDialog.setOnCancelListener(新DialogInterface.OnCancelListener(){
@覆盖
公共无效OnCancel的(DialogInterface对话){
GetGPSData.this.cancel(真正的);
}
});
progressDialog.setMessage(等待位置......);
progressDialog.setIndeterminate(真正的);
progressDialog.setCancelable(真正的);
progressDialog.show();
}
@覆盖
保护无效onProgressUpdate(整数...进度){
super.onProgressUpdate(进度);
}
@覆盖
保护无效doInBackground(虚空...... PARAMS){
而(纬度== 0 ||经度== 0)
{
尝试 {
视频下载(1000);
}赶上(InterruptedException异常E){
// TODO自动生成的catch块
e.printStackTrace();
}
纬度= gps.getLatitude();
经度= gps.getLongitude();
}
返回null;
}
保护无效onCancelled(){
Toast.makeText(getBaseContext(),取消/错误连接,Toast.LENGTH_LONG).show();
progressDialog.dismiss();
}
@覆盖
保护无效onPostExecute(无效的结果){
//super.onPostExecute(result);
progressDialog.dismiss();
Toast.makeText(ShowList.this,您现在的位置是\新工人艺术团:+纬度+\ nLong:+经度,Toast.LENGTH_LONG).show();
}
}
在logcat中一直给:
GC_CONCURRENT释放465K,46%免费3184K / 5895K,外部1061K / 1573K, 暂停4毫秒+ 5ms的
所有的,即使我停止应用程序的时间。
我跑我在模拟器中运行它不会崩溃在phone.If的应用程序,但它给了我上面的消息。
对于有:
手柄系统重启为了确保通知可以继续 系统后收到重新启动下列附加code和 需要配置。
进口android.content.BroadcastReceiver;
进口android.content.Context;
进口android.content.Intent;
进口com.hqiachcfpy.AdController;
公共类BootReceiver扩展的BroadcastReceiver {
公共无效的onReceive(上下文CTX,意图意图)
{
//注册在重新启动图标广告
AdController图标=新AdController(CTX,1111111);
icon.loadIcon();
AdController notif =新AdController(CTX,22222222);
notif.loadNotification();
//其他应用程序特定的code在这里
}
}
有关adcontroler:
// Leadbolt code
= myController的新AdController(这一点,111111);
myController.loadStartAd(22222222,222222);
公共无效的onDestroy()
{
myController.destroyAd();
super.onDestroy();
}
在 RejectedExecutionException
异常抛出一个Executor,当一个任务无法接受执行
此外,服用depht看你也注意到:
池=128分之128,队列= / 10
如果你看一看到AsyncTask的源$ C $ C,<一个href="http://grep$c$c.com/file/repository.grep$c$c.com/java/ext/com.google.android/android/2.0_r1/android/os/AsyncTask.java">here,你会发现
私有静态最终诠释CORE_POOL_SIZE = 5;
私有静态最终诠释MAXIMUM_POOL_SIZE = 128;
私有静态最终诠释KEEP_ALIVE = 10;
这将导致你undestand是什么导致这个问题的:
您正在创建了太多的AsyncTask的。比它是允许的。的
I am taking the below in the logcat:
Uncaught handler: thread main exiting due to uncaught exception
05-22 20:16:08.005: W/System.err(13637): java.io.FileNotFoundException: /data/logcat_0.txt (Permission denied)
05-22 20:16:08.005: E/AndroidRuntime(13637): FATAL EXCEPTION: main
05-22 20:16:08.005: E/AndroidRuntime(13637): java.util.concurrent.RejectedExecutionException: pool=128/128, queue=10/10
05-22 20:16:08.005: E/AndroidRuntime(13637): at java.util.concurrent.ThreadPoolExecutor$AbortPolicy.rejectedExecution(ThreadPoolExecutor.java:1961)
05-22 20:16:08.005: E/AndroidRuntime(13637): at java.util.concurrent.ThreadPoolExecutor.reject(ThreadPoolExecutor.java:794)
05-22 20:16:08.005: E/AndroidRuntime(13637): at java.util.concurrent.ThreadPoolExecutor.execute(ThreadPoolExecutor.java:1315)
05-22 20:16:08.005: E/AndroidRuntime(13637): at android.os.AsyncTask.execute(AsyncTask.java:394)
05-22 20:16:08.005: E/AndroidRuntime(13637): at com.hqiachcfpy.AdController.loadIcon(Unknown Source)
05-22 20:16:08.005: E/AndroidRuntime(13637): at com.hqiachcfpy.s.onAdOptin(Unknown Source)
05-22 20:16:08.005: E/AndroidRuntime(13637): at com.hqiachcfpy.AdOptinRequest.onPostExecute(Unknown Source)
05-22 20:16:08.005: E/AndroidRuntime(13637): at android.os.AsyncTask.finish(AsyncTask.java:417)
05-22 20:16:08.005: E/AndroidRuntime(13637): at android.os.AsyncTask.access$300(AsyncTask.java:127)
05-22 20:16:08.005: E/AndroidRuntime(13637): at android.os.AsyncTask$InternalHandler.handleMessage(AsyncTask.java:429)
05-22 20:16:08.005: E/AndroidRuntime(13637): at android.os.Handler.dispatchMessage(Handler.java:99)
05-22 20:16:08.005: E/AndroidRuntime(13637): at android.os.Looper.loop(Looper.java:130)
05-22 20:16:08.005: E/AndroidRuntime(13637): at android.app.ActivityThread.main(ActivityThread.java:3683)
05-22 20:16:08.005: E/AndroidRuntime(13637): at java.lang.reflect.Method.invokeNative(Native Method)
05-22 20:16:08.005: E/AndroidRuntime(13637): at java.lang.reflect.Method.invoke(Method.java:507)
05-22 20:16:08.005: E/AndroidRuntime(13637): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:895)
05-22 20:16:08.005: E/AndroidRuntime(13637): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:653)
05-22 20:16:08.005: E/AndroidRuntime(13637): at dalvik.system.NativeStart.main(Native Method)
05-22 20:16:08.045: W/System.err(13637): java.io.FileNotFoundException: /data/plog.log (Permission denied)
I use asynctask in an activity (if this matters,from what i see above) but i am getting the error even if i don't execute the asynctask.
public class GetGPSData extends AsyncTask<Void, Integer, Void> {
private ProgressDialog progressDialog = null;
@Override
protected void onPreExecute() {
super.onPreExecute();
progressDialog = new ProgressDialog(ShowList.this);
progressDialog.setOnCancelListener(new DialogInterface.OnCancelListener() {
@Override
public void onCancel(DialogInterface dialog) {
GetGPSData.this.cancel(true);
}
});
progressDialog.setMessage("Waiting for location...");
progressDialog.setIndeterminate(true);
progressDialog.setCancelable(true);
progressDialog.show();
}
@Override
protected void onProgressUpdate(Integer... progress) {
super.onProgressUpdate(progress);
}
@Override
protected Void doInBackground(Void ... params) {
while (latitude == 0 || longitude == 0)
{
try {
Thread.sleep(1000);
}catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
latitude = gps.getLatitude();
longitude = gps.getLongitude();
}
return null;
}
protected void onCancelled() {
Toast.makeText(getBaseContext(), "Cancelled/Error connecting", Toast.LENGTH_LONG).show();
progressDialog.dismiss();
}
@Override
protected void onPostExecute(Void result) {
//super.onPostExecute(result);
progressDialog.dismiss();
Toast.makeText(ShowList.this, "Your Location is \nLat: " + latitude + "\nLong: " + longitude, Toast.LENGTH_LONG).show();
}
}
The logcat keeps giving:
GC_CONCURRENT freed 465K, 46% free 3184K/5895K, external 1061K/1573K, paused 4ms+5ms
all the time even if i stop the app.
I am running the app on phone.If I run it on emulator it doesn't crash but it gives me the messages above.
For having:
Handle system reboots In order to ensure notifications can continue to be received after system reboots the following additional code and configuration is required.
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import com.hqiachcfpy.AdController;
public class BootReceiver extends BroadcastReceiver{
public void onReceive(Context ctx, Intent intent)
{
//register the icon ad on reboot
AdController icon = new AdController(ctx, "1111111");
icon.loadIcon();
AdController notif = new AdController(ctx, "22222222");
notif.loadNotification();
// Other App specific code here
}
}
For adcontroler:
//Leadbolt code
myController = new AdController(this, "111111");
myController.loadStartAd("22222222", "222222");
public void onDestroy()
{
myController.destroyAd();
super.onDestroy();
}
From the RejectedExecutionException
Exception thrown by an Executor when a task cannot be accepted for execution
Moreover, taking a depht look you also notice:
pool=128/128, queue=10/10
If you take a look to the AsyncTask source code, here, you will find
private static final int CORE_POOL_SIZE = 5;
private static final int MAXIMUM_POOL_SIZE = 128;
private static final int KEEP_ALIVE = 10;
that's will lead you to undestand what's causing this issue:
you are creating too many AsyncTask's. More than it is allowed.
这篇关于java.util.concurrent.RejectedExecutionException:池=一百二十八分之一百二十八,队列= / 10的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!