java–Android ScheduledThreadPoolExecutor原因:null

java–Android ScheduledThreadPoolExecutor原因:null,第1张

概述我用这个撕开我的头发!我是Android的新手,所以我确信它是非常明显的东西.我得到一个ScheduledThreadPoolExecutor异常,其中cause:null我想要的只是一个独立的线程,只要活动在屏幕上运行!//InstanceVariablesprivateScheduledExecutorServicem_oScheduledExecutor=null;@O

我用这个撕开我的头发!我是Android的新手,所以我确信它是非常明显的东西.

我得到一个ScheduledThreadPoolExecutor异常,其中cause:null

我想要的只是一个独立的线程,只要活动在屏幕上运行!

// Instance Variablesprivate scheduledexecutorservice m_oScheduledExecutor = null;@OverrIDeprotected voID onResume(){super.onResume();if (oScheduledExecutor == null){    oScheduledExecutor = Executors.newSingleThreadScheduledExecutor();}    try    {        oScheduledExecutor.scheduleAtFixedrate({Runnable Instance HERE}, 0, 10, TimeUnit.SECONDS);    }    catch (Exception e)    {        System.out.println("(MainActivity) Error: " + e.getMessage() + " Cause: " + e.getCause());    }}@OverrIDeprotected voID onStop(){    super.onStop();    m_oScheduledExecutor.shutdown();}

编辑:整个堆栈跟踪….

java.util.concurrent.RejectedExecutionException: Task java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask@41976688 rejected from java.util.concurrent.ScheduledThreadPoolExecutor@4195c7f8[Terminated, pool size = 0, active threads = 0, queued tasks = 0, completed tasks = 1]at java.util.concurrent.ThreadPoolExecutor$AbortPolicy.rejectedExecution(ThreadPoolExecutor.java:1979)at java.util.concurrent.ThreadPoolExecutor.reject(ThreadPoolExecutor.java:786)at java.util.concurrent.ScheduledThreadPoolExecutor.delayedExecute(ScheduledThreadPoolExecutor.java:300)at java.util.concurrent.ScheduledThreadPoolExecutor.scheduleAtFixedrate(ScheduledThreadPoolExecutor.java:545)at java.util.concurrent.Executors$Delegatedscheduledexecutorservice.scheduleAtFixedrate(Executors.java:619)at com.example.wifitest.MainActivity.onResume(MainActivity.java:61)at androID.app.Instrumentation.callActivityOnResume(Instrumentation.java:1185)at androID.app.Activity.performResume(Activity.java:5182)at androID.app.ActivityThread.performResumeActivity(ActivityThread.java:2732)at androID.app.ActivityThread.handleResumeActivity(ActivityThread.java:2771)at androID.app.ActivityThread$H.handleMessage(ActivityThread.java:1276)at androID.os.Handler.dispatchMessage(Handler.java:99)at androID.os.Looper.loop(Looper.java:137)at androID.app.ActivityThread.main(ActivityThread.java:5041)at java.lang.reflect.Method.invokeNative(Native Method)at java.lang.reflect.Method.invoke(Method.java:511)at com.androID.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793)at com.androID.internal.os.ZygoteInit.main(ZygoteInit.java:560)at dalvik.system.NativeStart.main(Native Method)

解决方法:

您无法“回收”ExecutorService.一旦调用了shutdown(),尝试调度任何任务都将导致拒绝,在您的情况下,拒绝策略将抛出RejectedExecutionException.

如果您关注堆栈跟踪,可以在ScheduledThreadPoolExecutor中看到:

/** * Specialized variant of ThreadPoolExecutor.execute for delayed tasks. */private voID delayedExecute(Runnable command) {    if (isShutdown()) {        reject(command);        return;    }    // ...}

将执行程序服务作为实例变量保存在这里对你不起作用:一旦它被关闭,它就不能再次使用了.

总结

以上是内存溢出为你收集整理的java – Android ScheduledThreadPoolExecutor原因:null全部内容,希望文章能够帮你解决java – Android ScheduledThreadPoolExecutor原因:null所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1114661.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-29
下一篇 2022-05-29

发表评论

登录后才能评论

评论列表(0条)

保存