Places a job in the queue for asynchronous execution in database thread.
The added job's {@link SQLiteJob#job} method will be called from the database thread with an instance of{@link SQLiteConnection}. Job may provide a return value, which will be treated as the job result.
The queue must be started in order for jobs to start executing. Jobs may be added to the queue before or after the queue is started. However, if the queue is already stopped, the job will be immediately cancelled. (It will receive {@link SQLiteJob#jobCancelled} and {@link SQLiteJob#jobFinished} callbacks before this method finishes.)
Because this method returns the argument, you can chain this method with other methods in SQLiteJob or in its subclass:
MyResult r = myQueue.execute(new SQLiteJob<MyResult>() { ... }).complete();
@param job the job to be executed on this queue's database connection, must not be null
@param < T> class of the job's result; use Object or Void if no result is needed
@param < J> job class
@return job
@see SQLiteJob