private boolean isThreadQueued(int targetId, int targetPage) {
   for (AwfulTask<?> at : threadPool) {
     if (at.getId() == targetId && at.getPage() == targetPage) {
       return true;
     }
   }
   if (currentTask != null
       && currentTask.getId() == targetId
       && currentTask.getPage() == targetPage) {
     return true;
   }
   return false;
 }
 public void onDestroy() {
   Log.e(TAG, "Service onDestroy.");
   if (currentTask != null) {
     currentTask.cancel(true);
   }
   threadPool.clear();
   while (registeredAvatarClients.peek() != null) {
     avatarCache.getBus().unregister(registeredAvatarClients.poll());
   }
 }
 private void startNextThread() {
   if (currentTask == null && !threadPool.isEmpty()) {
     currentTask = threadPool.pop();
     currentTask.execute();
   }
 }