/** * Utility routine to start a task * * @param thread Task to start */ private void startOne(SearchThread thread) { synchronized (mRunningTasks) { mRunningTasks.add(thread); mTaskManager.addTask(thread); // System.out.println(thread.getClass().getSimpleName() + "(" + + thread.getId() + ") // STARTING"); } thread.start(); }
/** * Constructor. * * @param manager Associated task manager * @param taskHandler Object to inform of life0cycle events */ public ManagedTask(TaskManager manager, TaskHandler taskHandler) { // Must be non-null if (manager == null) throw new IllegalArgumentException(); // Save the stuff for mater mManager = manager; mTaskHandler = taskHandler; // Add to my manager mManager.addTask(this); // Create a new Handler. mMessageHandler = new TaskMessageHandler(); // Let the subclass create DB if they need it for now. // mDbHelper = new CatalogueDBAdapter(mContext); }
private int launchTasks() { int mid = (start + end) / 2; SearchNumberTask t1 = new SearchNumberTask(numbers, start, mid, number, manager); SearchNumberTask t2 = new SearchNumberTask(numbers, mid, end, number, manager); manager.addTask(t1); manager.addTask(t2); // asynchronous t1.fork(); t2.fork(); int returnValue; returnValue = t1.join(); // wait for completion if (returnValue != -1) { return returnValue; } returnValue = t2.join(); // wait for completion return returnValue; }
/** * Add the task to the task manager. * * @return Returns this class, for chaining. */ @Override public UserTask addToQueue() throws DuplicateTaskException { TaskManager.addTask(this); return this; }