Class LongTaskExecutor


  • public final class LongTaskExecutor
    extends Object
    Portable long-task executor, that supports synchronous and asynchronous execution, progress, cancellation and error management.

    Note that only one task can be executed by the executor at one time.

    Author:
    Mathieu Bastian
    See Also:
    LongTask
    • Constructor Detail

      • LongTaskExecutor

        public LongTaskExecutor​(boolean doInBackground,
                                String name,
                                int interruptDelay)
        Creates a new long task executor.
        Parameters:
        doInBackground - when true, the task will be executed in a separate thread
        name - the name of the executor, used to recognize threads by names
        interruptDelay - number of seconds to wait before * calling Thread.interrupt() after a cancel request
      • LongTaskExecutor

        public LongTaskExecutor​(boolean doInBackground,
                                String name)
        Creates a new long task executor.
        Parameters:
        doInBackground - doInBackground when true, the task will be executed in a separate thread
        name - the name of the executor, used to recognize threads by names
      • LongTaskExecutor

        public LongTaskExecutor​(boolean doInBackground)
        Creates a new long task executor.
        Parameters:
        doInBackground - doInBackground when true, the task will be executed in a separate thread
    • Method Detail

      • execute

        public void execute​(LongTask task,
                            Runnable runnable,
                            String taskName,
                            LongTaskErrorHandler errorHandler)
        Execute a long task with cancel and progress support. Task can be null. In this case runnable will be executed normally, but without cancel and progress support.
        Parameters:
        task - the task to be executed, can be null.
        runnable - the runnable to be executed
        taskName - the name of the task, is displayed in the status bar if available
        errorHandler - error handler for exception retrieval during execution
        Throws:
        NullPointerException - if runnable * or taskName is null
        IllegalStateException - if a task is still executing at this time
      • execute

        public void execute​(LongTask task,
                            Runnable runnable)
        Execute a long task with cancel and progress support. Task can be null. In this case runnable will be executed normally, but without cancel and progress support.
        Parameters:
        task - the task to be executed, can be null.
        runnable - the runnable to be executed
        Throws:
        NullPointerException - if runnable is null
        IllegalStateException - if a task is still executing at this time
      • cancel

        public void cancel()
        Cancel the current task. If the task fails to cancel itself and if an interruptDelay has been specified, the task will be interrupted after interruptDelay. Using Thread.interrupt() may cause hazardous behaviors and should be avoided. Therefore any task should be cancelable.
      • isRunning

        public boolean isRunning()
        Returns true if the executor is executing a task.
        Returns:
        true if a task is running, false otherwise
      • setLongTaskListener

        public void setLongTaskListener​(LongTaskListener listener)
        Set the listener to this executor. Only a unique listener can be set to this executor. The listener is called when the task terminates normally.
        Parameters:
        listener - a listener for this executor
      • setDefaultErrorHandler

        public void setDefaultErrorHandler​(LongTaskErrorHandler errorHandler)
        Set the default error handler. Use error handlers to get errors and exceptions thrown during tasks execution.
        Parameters:
        errorHandler - the default error handler