ParseLiveQuery-Android icon indicating copy to clipboard operation
ParseLiveQuery-Android copied to clipboard

Migrate Executor to TaskQueue

Open jhansche opened this issue 8 years ago • 3 comments

Current implementation uses Executor, which makes it harder to perform scheduled tasks or to perform task chaining. Currently tasks are enqueued by invoking a static method:

        return Task.call(new Callable<Void>() {
            public Void call() throws Exception {
                // ... do the work ...
                return null;
            }
        }, taskExecutor);

Typical Parse code is written using TaskQueue instead:

    return taskQueue.enqueue(new Continuation<Void, Task<Void>>() {
      @Override
      public Task<Void> then(Task<Void> toAwait) throws Exception {
        return toAwait.continueWithTask(new Continuation<Void, Task<Void>>() {
          @Override
          public Task<Void> then(Task<Void> task) throws Exception {
            // ... do the work ...
            return <a task that resolves when the work is complete>;
          }
        });
      }
    });

The end result is largely the same, but using TaskQueue will help keep the architecture more in line with what is already established in Parse-SDK-Android.

jhansche avatar Mar 27 '17 22:03 jhansche

Basically using the bolts framework right?

rogerhu avatar Mar 28 '17 01:03 rogerhu

Yeah, that's the idea. Updating the client to work more like how the existing parse platform is already written.

jhansche avatar Mar 28 '17 02:03 jhansche

Sorry it was my first time using that Framework when I made the initial project. I tried to do the same as how it's done in the existing parse platform. Thanks, and I'll learn about it :)

mmimeault avatar Mar 28 '17 14:03 mmimeault