0
我在啓動ScheduledThreadPoolExecutor時收到以下異常。我用它來每隔一分鐘輪詢一次服務器。ScheduledThreadPoolExcecutor中的RejectedExecutionException異常
01-11 18:45:50.243: E/AndroidRuntime(2427): Caused by: java.util.concurrent.RejectedExecutionException: pool=0/2147483647, queue=0
我的代碼
stpe.scheduleWithFixedDelay(new Runnable() {
public void run() {
//Start Polling:
Calendar cal = Calendar.getInstance();
cal.getTime();
SimpleDateFormat sdf = new SimpleDateFormat("HH:mm:ss");
System.out.println(sdf.format(cal.getTime()));
Log.d("Polling", sdf.format(cal.getTime()) + " Polling for devices");
HttpUtil httpUtil = new HttpUtil(mContext);
httpUtil.setJNAPCode(R.string.action_devices);
httpUtil.executeJNAPAction(true);
}
},0, 60,TimeUnit.SECONDS);
在創建活動時,這就是所謂的。每次我開始活動時,我都會收到此例外情況,即它在崩潰後下次加載時有效。
我在關閉活動之前使用stpe.shutdownNow()將其關閉。但是,當下次在加載應用程序之後創建此活動時,我會得到異常。
關閉stpe後,我不會創建新任務。它僅在關閉應用程序時關閉。但是,當下次應用程序加載時,我嘗試提交我得到這個。 –
我不是Android專家,但我認爲您的應用在您離開並回來後會保持其狀態。因此,除非您在onStart中創建執行程序的新實例,否則您將使用先前關閉的實例。 – assylias
所以你會在onCreate中創建執行程序,在onStart中提交任務,在onStop中取消它並關閉onDestroy中的執行程序。 – assylias