@Override
		public void run() {
			while (true) {
				if (!pause) {
					Log.i("TaskClearing!!!");

					try {
						Set<String> keys = runningTasks.keySet();
						Iterator<String> iterator = keys.iterator();
						while (iterator.hasNext()) {
							String key = iterator.next();
							ServerTask task = runningTasks.get(key);
							if (System.currentTimeMillis() - task.getLastActiveTime() > MAX_TASK_FREE_TIME) {
								runningTasks.remove(key);
								if (task instanceof FriendServerTask) {
									freeFriendServerTasks.add((FriendServerTask) task);
								}else if(task instanceof GroupServerTask){
									freeGroupServerTasks.add((GroupServerTask) task);
								}
								Log.i("TaskClearing!!!--clear "+task.getServeUni());
							}
							
						}
						
						sleep(CLEAR_PERIOD);
					} catch (InterruptedException e) {
						//Log.e(e.getMessage());
					} catch (Exception e) {
						// TODO: handle exception
					}
				}
				
			}
		}