History log of /frameworks/base/core/java/android/os/AsyncTask.java
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
bba231d7a63b58a8c2b174722ed1487b0f7d8270 15-Nov-2014 Jeff Brown <jeffbrown@google.com> Explicitly bind AsyncTask to main looper.

It seems we were sort of trying to do this by forcing the AsyncTask
static initializer to run at certain times but it was not sufficiently
reliable. In particular, this resulted in occasional system
server crashes.

Bug: 18192406
Change-Id: Ief73210c60e7680fbed6df74e3e58809b7ec7e4d
/frameworks/base/core/java/android/os/AsyncTask.java
72fa3ed1a04d1d3344dfd231fc36dedfb133a8c0 25-Feb-2014 Patrick Tjin <pattjin@google.com> Fix typo in documentation

Change-Id: Ida827957623cf49981e5a0c2c9193ef4efe8d1ce
/frameworks/base/core/java/android/os/AsyncTask.java
3390018c6b45acffa6edf97a4174ca49f1e8c76d 02-Jan-2014 John Spurlock <jspurlock@google.com> Docfixes: three typos and escape */*.

Change-Id: I418d855b5d08a1a20eaca3d8e4d2e5d0fca23dd5
/frameworks/base/core/java/android/os/AsyncTask.java
719c44e03b97e850a46136ba336d729f5fbd1f47 10-Aug-2013 Romain Guy <romainguy@google.com> Prevent AsyncTask from creating too many threads
Bug #10228005

From the ThreadPoolExecutor documentation:

- If fewer than corePoolSize threads are running, the Executor
always prefers adding a new thread rather than queuing.
- If corePoolSize or more threads are running, the Executor
always prefers queuing a request rather than adding a new thread.
- If a request cannot be queued, a new thread is created unless
this would exceed maximumPoolSize, in which case, the task will
be rejected.

Before this change AsyncTask could create up to 128 threads because
of the limited queue of 10 items (the capacity of a blocking queue
is fixed.)

This change increases the size of the queue to 128 items and reduces
the maximum number of threads to the number of CPU cores * 2 + 1.
Apps can still submit the same number of tasks.

Change-Id: I015d77b53b6a9fda39c618830b34d45a10de5571
/frameworks/base/core/java/android/os/AsyncTask.java
6f931ccd31bc0a8a402072c1d87e682c8a30a404 17-Oct-2012 Romain Guy <romainguy@google.com> Fix javadoc

Change-Id: Ie98dd00f41add876f3740f5d37781a10c6bd41fe
/frameworks/base/core/java/android/os/AsyncTask.java
2c1b8c744daf1dfb3cc545effaf9a43e342a3d38 21-May-2012 Romain Guy <romainguy@google.com> Update AsyncTask documentation

Change-Id: I678506309f027bb12d0c3f42436a60611aca5d8c
/frameworks/base/core/java/android/os/AsyncTask.java
b1ec5ef460ac62fa8d3e621794787336e513a8ef 02-Mar-2012 Jeff Brown <jeffbrown@google.com> Shouldn't catch Throwable in AsyncTask.

Throwable includes classes of Error that really should be fatal.

Bug: 5945222
Change-Id: I602f958396048451f404dd2306cdf5e57172acf0
/frameworks/base/core/java/android/os/AsyncTask.java
5e9120d4adfb07aeeadb0e0de1de2eb9ebbd80e0 30-Jan-2012 Romain Guy <romainguy@google.com> Always initialize AsyncTask on the main thread.

Change-Id: I039e5d6cb7157a0c8873e0d29161daf1cbda5577
/frameworks/base/core/java/android/os/AsyncTask.java
657f51371cc631a82a8d30cd4a796c48077d474b 05-Dec-2011 Romain Guy <romainguy@google.com> Make sure onPostExecute() is never called after cancel()
Bug #5651553

As dfined by the documentation.

Change-Id: I627a49ee000d6990b61fd64dde9b06f72cd5cbae
/frameworks/base/core/java/android/os/AsyncTask.java
0bbd8d8273c1dde9e0504f67bd8eb159bef2406a 12-Oct-2011 Romain Guy <romainguy@google.com> Revert "Check whether an AsyncTask is created/executed on a looper thread."

This reverts commit 7498ccb6b9a1e61281d998fc81adc9a4a5e87e56.
/frameworks/base/core/java/android/os/AsyncTask.java
5e7f2d0b227df38f6dbc2313ac8b5c9f225c135e 12-Oct-2011 Romain Guy <romainguy@google.com> Revert "Fix the build"

This reverts commit 4db2504adab21e4439c123d2675db555e0143afa.
/frameworks/base/core/java/android/os/AsyncTask.java
4db2504adab21e4439c123d2675db555e0143afa 11-Oct-2011 Romain Guy <romainguy@google.com> Fix the build

Change-Id: I3071feab62abee7393557ceb920786b476fb0b02
/frameworks/base/core/java/android/os/AsyncTask.java
7498ccb6b9a1e61281d998fc81adc9a4a5e87e56 17-Sep-2011 Romain Guy <romainguy@android.com> Check whether an AsyncTask is created/executed on a looper thread.

Change-Id: I181b253c50a6579f35e61cd4b0c500379462e035
/frameworks/base/core/java/android/os/AsyncTask.java
b54e7a3d9f60ac605f404f9eb3c5e92ca51bbd23 04-Oct-2011 Joe Fernandez <joefernandez@google.com> docs: add developer guide cross-references, Project ACRE

Change-Id: I5df1c4e13af67ff4c4a5b22f3cb1247bf0103b09
/frameworks/base/core/java/android/os/AsyncTask.java
99f801da15d73272b99487b5694b29a1c2189439 17-Sep-2011 Jeff Brown <jeffbrown@google.com> Revert "Forces AsyncTask to use the main looper Bug #5333924"

This reverts commit 6dafefb0f44c4e57384e2ec3e08fefac5cc7e071

This change is breaking the system on startup with an NPE. Need to fix that first then resubmit.
/frameworks/base/core/java/android/os/AsyncTask.java
6dafefb0f44c4e57384e2ec3e08fefac5cc7e071 17-Sep-2011 Romain Guy <romainguy@android.com> Forces AsyncTask to use the main looper
Bug #5333924

This might break applications trying to use AsyncTask on a looper
that is not the main thread, but such apps would already have
issues (AsyncTask has a single static handler and attempting to
use AsyncTask outside of the main thread would likely result
in weird threading issues in other parts of the app.)

Change-Id: Ibbf480627fc7b91326a27d4f5e5af49e8c5b5115
/frameworks/base/core/java/android/os/AsyncTask.java
d630f105e8bc0021541aacb4dc6498a49048ecea 18-Mar-2011 Joe Onorato <joeo@google.com> AsyncTask now uses the poll executor for apps up through HC MR1 and the serialized one after that.

Change-Id: I47d135ace5f8e78e4fa44ac9d1bf7abeeb9d3ba0
/frameworks/base/core/java/android/os/AsyncTask.java
96438cd658f91fed9d8fc651c4eb1e55dc6dbf80 26-Jan-2011 Dianne Hackborn <hackbod@google.com> Change AsyncTask.execute() back to using a thread pool...

...for now.

Change-Id: I1fe64f3e3a575f85add11dfe4d405f0c3a4a49de
/frameworks/base/core/java/android/os/AsyncTask.java
9bb85ab3af3f8e4efa9c8c22f907680cd0108bcb 16-Jan-2011 Joe Onorato <joeo@google.com> fix the build... sorry... bad docs...

Change-Id: I4b543f306d58ec95693c8e3515dffcb7dd55dc29
/frameworks/base/core/java/android/os/AsyncTask.java
81de61bfddceba0eb77b3aacea317594b0f1de49 16-Jan-2011 Joe Onorato <joeo@google.com> Change the default of how AsyncTask enqueues.

The default is now to serialize everything onto the thread pool. If you would
like to have finer grained control over how AsyncTasks are executed, you can
call the new executeOnExecutor method, which takes a custom Executor. The
pool used by the default is handily now accessible as THREAD_POOL_EXECUTOR.

This change is because it is too tempting to convert single threaded Janky™
code to use AsyncTask in a way that is unsafe and ends up calling the
AsyncTasks in parallel.

Also, this adds a static execute(Runnable) method to AsyncTask that posts
onto the serialized queue, so that if you don't have any parameters or
return values, you can just use Runnable instead of AsyncTask.

Change-Id: I91bdfb00193542bfc2e101bcad56e3430421884a
/frameworks/base/core/java/android/os/AsyncTask.java
5ba812b9e9c886425a5736c2ae6fbe0fc94afd8b 10-Jan-2011 Romain Guy <romainguy@google.com> Make sure onCancelled() is called if cancel() is called early.

In some situations, when cancel() was called before the task had a
chance to start its execution, onCancelled() would not be invoked.

Change-Id: I6c1f4cd28a209fb8cc779bb212f500565dfceaae
/frameworks/base/core/java/android/os/AsyncTask.java
e95003e4a15eea2d5f93950fc46f99ff2b9c973a 09-Jan-2011 Romain Guy <romainguy@google.com> Tighten up AsyncTask's semantics and behavior.
Bug #3109366
Bug #3109382

The new behavior of AsyncTask is the following:
- Unchanged if you don't call cancel()
- If you call cancel():
- Either onCancelled() *OR* onPostExecute() is invoked
- onCancelled() is invoked only after doInBackground() finishes

Change-Id: If53faec5890d2fa7098aea76973186a0b1026b39
/frameworks/base/core/java/android/os/AsyncTask.java
a2ea747faaf5fcd437afbaaf4085cfc29e7c16b8 20-Dec-2010 Dianne Hackborn <hackbod@google.com> More cleanup of Loader APIs.

- Remove old method names.
- Introduce onXxx() hooks to Loader.
- Improve debugging.

Change-Id: I3fba072a05c7023aa7d2c3eb4e126feb514ab6d8
/frameworks/base/core/java/android/os/AsyncTask.java
9ec0c471c1159fdffc63a65c2fae644ee5c01959 15-Sep-2010 Romain Guy <romainguy@google.com> am 282315e1: am 52e19d59: Merge "Change the keep alive time for excess idle threads." into gingerbread

Merge commit '282315e154b63a2eec84609600c81ad9e1c72994'

* commit '282315e154b63a2eec84609600c81ad9e1c72994':
Change the keep alive time for excess idle threads.
6b424f4770e1c4fe3e4c2a44d08447b0e9203dd4 14-Sep-2010 Romain Guy <romainguy@google.com> Change the keep alive time for excess idle threads.

Change-Id: Ie076544df5ee8df185f0824333fdc62203a565c2
/frameworks/base/core/java/android/os/AsyncTask.java
aa60a02f7934ac23cb88f16ed2d726157bc9f31c 31-Aug-2010 Makoto Onuki <omakoto@google.com> Added "Memory observability" to javadoc.

Change-Id: I4fba91922f033af408903cc4b455daa291e3f6ac
/frameworks/base/core/java/android/os/AsyncTask.java
23fdaf6fb62a9b5154b2508916a21c678462c5d0 06-Aug-2010 Dianne Hackborn <hackbod@google.com> Add new ContentProvider for doing conversions to data streams.

This introduces basic infrastructure that should allow content
providers holding complex data to perform on-demand conversion
of their data to streams of various types. It is achieved through
two new content provider APIs, one to interrogate the possible
stream MIME types the provider can return, and the other to
request a stream of data in a particular MIME type.

Because implementations of this will often need to do on-demand
data conversion, there is also a utility intoduced in ContentProvider
for subclasses to easily run a function to write data into a
pipe that is read by the client.

This feature is mostly intended for cut and paste and drag and
drop, as the complex data interchange allowing the source and
destination to negotiate data types and copy (possible large)
data between them. However because it is fundamental facility
of ContentProvider, it can be used in other places, such as for
more advanced GET_CONTENT data exchanges.

An example implementation of this would be in ContactsProvider,
which can now provider a data stream when a client opens certain
pieces of it data, to return data as flat text, a vcard, or other
format.

Change-Id: I58627ea4ed359aa7cf2c66274adb18306c209cb2
/frameworks/base/core/java/android/os/AsyncTask.java
bef9c7a59dc020c5cdcbd555b5212ae5a10e8045 17-Jun-2010 Dmitri Plotnikov <dplotnikov@google.com> Preventing cursor leaks when a query is interrupted

Re-ran runtest cts-os

Change-Id: I518a2a4f842b01d082078e16643aa377a4575237
/frameworks/base/core/java/android/os/AsyncTask.java
4aaf8ec9dfb9a9e0f3d84e8ee95d7ac2ebca8d92 03-Jun-2010 Romain Guy <romainguy@google.com> Do not invoke onProgressUpdate if the task is canceled.
Bug #2734382

Change-Id: I8d507ae72af2f6dfe66598fb9090872520111a6b
/frameworks/base/core/java/android/os/AsyncTask.java
7f4b6842ce2388b8e60cd31bdc3273f80472f632 28-Apr-2010 Gilles Debunne <debunne@google.com> Changed steps names in documentation.

Change-Id: I0541709a719e35575bb2c42e6f2ea457d21c545b
/frameworks/base/core/java/android/os/AsyncTask.java
202f560f85446008808e443ad28e438622bca49f 28-Dec-2009 Owen Lin <owenlin@google.com> Fix a typo.

Change-Id: Idbe649678a7321a6bd9511218788bc4dfb3cbdb4
/frameworks/base/core/java/android/os/AsyncTask.java
4b057801d5a5a859c2f9a68230744a6b0939ae01 05-Oct-2009 Romain Guy <romainguy@android.com> Make sure AsyncTask sens a null result to onPostExecute() when cancelled.

This is in accordance to the documentation. This bug was approved by hackbod.
The change is safe and is a single line of code.

Change-Id: I9b771df3ae2aa4f496d15e6c43b677f3245539ac
/frameworks/base/core/java/android/os/AsyncTask.java
a9be47cea45c19f2869732252e9922bf88fa4d86 26-Jun-2009 Romain Guy <romainguy@android.com> Tweak the core and maximum pool sizes for AsyncTask.

This change allows up to 5 AsyncTasks to run concurrently. Before, only 1 task
could run at a time, which was too limited. This change also bumps up the maximum
number of tasks that can be created; this large number is not an issue because
tasks are queued up and run only 5 at a time.
/frameworks/base/core/java/android/os/AsyncTask.java
6a1ae64f7735a3817713a223096bf8034f78a620 03-May-2009 Romain Guy <romainguy@android.com> Fix another HTML formatting in android.os.AsyncTask
/frameworks/base/core/java/android/os/AsyncTask.java
b97aec64be8a3f8c37b1735c981167b958d39403 03-May-2009 Romain Guy <romainguy@android.com> Fix HTML formatting in android.os.AsyncTask
/frameworks/base/core/java/android/os/AsyncTask.java
9066cfe9886ac131c34d59ed0e2d287b0e3c0087 04-Mar-2009 The Android Open Source Project <initial-contribution@android.com> auto import from //depot/cupcake/@135843
/frameworks/base/core/java/android/os/AsyncTask.java
d83a98f4ce9cfa908f5c54bbd70f03eec07e7553 04-Mar-2009 The Android Open Source Project <initial-contribution@android.com> auto import from //depot/cupcake/@135843
/frameworks/base/core/java/android/os/AsyncTask.java
f013e1afd1e68af5e3b868c26a653bbfb39538f8 18-Dec-2008 The Android Open Source Project <initial-contribution@android.com> Code drop from //branches/cupcake/...@124589
/frameworks/base/core/java/android/os/AsyncTask.java