summaryrefslogtreecommitdiff
path: root/core/java/android/os/AsyncTask.java
diff options
context:
space:
mode:
authorJoe Onorato <joeo@google.com>2011-03-17 18:42:26 -0700
committerJoe Onorato <joeo@google.com>2011-03-17 18:42:26 -0700
commitd630f105e8bc0021541aacb4dc6498a49048ecea (patch)
tree5ced21b53b4770476bf1a4f235be0057e37f57b9 /core/java/android/os/AsyncTask.java
parente92f2121a7275763898fc6238ea96575ffa473b3 (diff)
AsyncTask now uses the poll executor for apps up through HC MR1 and the serialized one after that.
Change-Id: I47d135ace5f8e78e4fa44ac9d1bf7abeeb9d3ba0
Diffstat (limited to 'core/java/android/os/AsyncTask.java')
-rw-r--r--core/java/android/os/AsyncTask.java11
1 files changed, 8 insertions, 3 deletions
diff --git a/core/java/android/os/AsyncTask.java b/core/java/android/os/AsyncTask.java
index 1803604a85ee..64bba54b2cee 100644
--- a/core/java/android/os/AsyncTask.java
+++ b/core/java/android/os/AsyncTask.java
@@ -153,7 +153,6 @@ public abstract class AsyncTask<Params, Progress, Result> {
private static final int MAXIMUM_POOL_SIZE = 128;
private static final int KEEP_ALIVE = 1;
-
private static final ThreadFactory sThreadFactory = new ThreadFactory() {
private final AtomicInteger mCount = new AtomicInteger(1);
@@ -183,6 +182,7 @@ public abstract class AsyncTask<Params, Progress, Result> {
private static final InternalHandler sHandler = new InternalHandler();
+ private static volatile Executor sDefaultExecutor = SERIAL_EXECUTOR;
private final WorkerRunnable<Params, Result> mWorker;
private final FutureTask<Result> mFuture;
@@ -240,6 +240,11 @@ public abstract class AsyncTask<Params, Progress, Result> {
sHandler.getLooper();
}
+ /** @hide */
+ public static void setDefaultExecutor(Executor exec) {
+ sDefaultExecutor = exec;
+ }
+
/**
* Creates a new asynchronous task. This constructor must be invoked on the UI thread.
*/
@@ -496,7 +501,7 @@ public abstract class AsyncTask<Params, Progress, Result> {
* {@link AsyncTask.Status#RUNNING} or {@link AsyncTask.Status#FINISHED}.
*/
public final AsyncTask<Params, Progress, Result> execute(Params... params) {
- return executeOnExecutor(THREAD_POOL_EXECUTOR, params);
+ return executeOnExecutor(sDefaultExecutor, params);
}
/**
@@ -559,7 +564,7 @@ public abstract class AsyncTask<Params, Progress, Result> {
* a simple Runnable object.
*/
public static void execute(Runnable runnable) {
- THREAD_POOL_EXECUTOR.execute(runnable);
+ sDefaultExecutor.execute(runnable);
}
/**