@@ -0,0 +1,1260 @@
+package com.cmgapps.android.util;%0A%0Aimport java.util.concurrent.Executor;%0A%0Aimport android.annotation.TargetApi;%0Aimport android.os.AsyncTask;%0Aimport android.os.Build;%0A%0A/**%0A * Uses level 11 APIs when possible to use parallel/serial executors and falls back to standard execution if API level%0A * is below 11.%0A * %0A */%0Apublic class AsyncTaskExecutionHelper %7B%0A    @TargetApi(11)%0A    static class HoneycombExecutionHelper %7B%0A        public static %3CP%3E void execute(AsyncTask%3CP, ?, ?%3E asyncTask, boolean parallel, P... params) %7B%0A            Executor executor = parallel ? AsyncTask.THREAD_POOL_EXECUTOR : AsyncTask.SERIAL_EXECUTOR;%0A            asyncTask.executeOnExecutor(executor, params);%0A        %7D%0A    %7D%0A%0A    public static %3CP%3E void executeParallel(AsyncTask%3CP, ?, ?%3E asyncTask, P... params) %7B%0A        execute(asyncTask, true, params);%0A    %7D%0A%0A    public static %3CP%3E void executeSerial(AsyncTask%3CP, ?, ?%3E asyncTask, P... params) %7B%0A        execute(asyncTask, false, params);%0A    %7D%0A%0A    private static %3CP%3E void execute(AsyncTask%3CP, ?, ?%3E asyncTask, boolean parallel, P... params) %7B%0A        if (Build.VERSION.SDK_INT %3E= 11) %7B%0A            HoneycombExecutionHelper.execute(asyncTask, parallel, params);%0A        %7D else %7B%0A            asyncTask.execute(params);%0A        %7D%0A    %7D%0A%7D

add AsyncTaskExecutionHelper