i am creating asynchtask on thread pool on an listview . i am handling those task through an listarray of asynchtask . i have to remove those task when fragments get destroy and have to again assign those task when i make new fragment after destroying last one .
my code in listview adapter is
if(FragmentNowPlaying.task.isEmpty()){
FragmentNowPlaying.task.add( new ProgressAsynchTask(holder.info,tvShows, position));
FragmentNowPlaying.task.get(position).executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR);
}
else if(position >= FragmentNowPlaying.task.size()){
FragmentNowPlaying.task.add( new ProgressAsynchTask(holder.info,tvShows, position));
FragmentNowPlaying.task.get(position).executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR);
}
else if(position < FragmentNowPlaying.task.size()){
if(FragmentNowPlaying.task.get(position).getStatus().RUNNING == null){
FragmentNowPlaying.task.remove(position);
FragmentNowPlaying.task.add( new ProgressAsynchTask(holder.info,tvShows, position));
FragmentNowPlaying.task.get(position).executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR);
} else if(FragmentNowPlaying.task.get(position).getStatus().RUNNING != null){
FragmentNowPlaying.task.get(position).cancel(true);
FragmentNowPlaying.task.remove(position);
FragmentNowPlaying.task.add( new ProgressAsynchTask(holder.info,tvShows, position));
FragmentNowPlaying.task.get(FragmentNowPlaying.task.size()-1).executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR);
}
}
problem is that i couldn't remove and cancel last asynchtask threads , this is causing rejectedExecuationException and do not allowing it to create new thread as thread pool size get reach. Please tell me how can i get over this issue ? so my progressbars run smoothly and save me from this error.
again reminding i have a fragment which have a listview.