parse-community / ParseLiveQuery-Android

Parse LiveQuery client for Android.
Other
84 stars 32 forks source link

Migrate Executor to TaskQueue #36

Open jhansche opened 7 years ago

jhansche commented 7 years ago

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.

rogerhu commented 7 years ago

Basically using the bolts framework right?

jhansche commented 7 years ago

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

mmimeault commented 7 years ago

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 :)