diff options
author | Dominik Schürmann <dominik@dominikschuermann.de> | 2014-02-24 01:47:53 +0100 |
---|---|---|
committer | Dominik Schürmann <dominik@dominikschuermann.de> | 2014-02-24 01:47:53 +0100 |
commit | e97630b75e018e09414b93442f2fb224ebc7bd09 (patch) | |
tree | 5bf0312a767f6a4885b694f17057724b5f08d73a | |
parent | 0747a5815f2c9875d0b0ffb6b88ea67b60c5003c (diff) | |
download | open-keychain-e97630b75e018e09414b93442f2fb224ebc7bd09.tar.gz open-keychain-e97630b75e018e09414b93442f2fb224ebc7bd09.tar.bz2 open-keychain-e97630b75e018e09414b93442f2fb224ebc7bd09.zip |
reapply accedentially reverted 5d8867260946937498cf9e8d64fea3a9f53d9dd3
2 files changed, 20 insertions, 2 deletions
diff --git a/OpenPGP-Keychain-API/libraries/keychain-api-library/src/org/openintents/openpgp/util/OpenPgpApi.java b/OpenPGP-Keychain-API/libraries/keychain-api-library/src/org/openintents/openpgp/util/OpenPgpApi.java index f121c345d..41cbfec59 100644 --- a/OpenPGP-Keychain-API/libraries/keychain-api-library/src/org/openintents/openpgp/util/OpenPgpApi.java +++ b/OpenPGP-Keychain-API/libraries/keychain-api-library/src/org/openintents/openpgp/util/OpenPgpApi.java @@ -18,6 +18,7 @@ package org.openintents.openpgp.util; import android.content.Context; import android.os.AsyncTask; +import android.os.Build; import android.os.Bundle; import android.os.ParcelFileDescriptor; import android.util.Log; @@ -127,7 +128,15 @@ public class OpenPgpApi { } private void executeApiAsync(int operationId, Bundle params, InputStream is, OutputStream os, IOpenPgpCallback callback) { - new OpenPgpAsyncTask(operationId, params, is, os, callback).execute((Void[]) null); + OpenPgpAsyncTask task = new OpenPgpAsyncTask(operationId, params, is, os, callback); + + // don't serialize async tasks! + // http://commonsware.com/blog/2012/04/20/asynctask-threading-regression-confirmed.html + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) { + task.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR, (Void[]) null); + } else { + task.execute((Void[]) null); + } } private Bundle executeApi(int operationId, Bundle params, InputStream is, OutputStream os) { diff --git a/libraries/keychain-api-library/src/org/openintents/openpgp/util/OpenPgpApi.java b/libraries/keychain-api-library/src/org/openintents/openpgp/util/OpenPgpApi.java index f121c345d..41cbfec59 100644 --- a/libraries/keychain-api-library/src/org/openintents/openpgp/util/OpenPgpApi.java +++ b/libraries/keychain-api-library/src/org/openintents/openpgp/util/OpenPgpApi.java @@ -18,6 +18,7 @@ package org.openintents.openpgp.util; import android.content.Context; import android.os.AsyncTask; +import android.os.Build; import android.os.Bundle; import android.os.ParcelFileDescriptor; import android.util.Log; @@ -127,7 +128,15 @@ public class OpenPgpApi { } private void executeApiAsync(int operationId, Bundle params, InputStream is, OutputStream os, IOpenPgpCallback callback) { - new OpenPgpAsyncTask(operationId, params, is, os, callback).execute((Void[]) null); + OpenPgpAsyncTask task = new OpenPgpAsyncTask(operationId, params, is, os, callback); + + // don't serialize async tasks! + // http://commonsware.com/blog/2012/04/20/asynctask-threading-regression-confirmed.html + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) { + task.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR, (Void[]) null); + } else { + task.execute((Void[]) null); + } } private Bundle executeApi(int operationId, Bundle params, InputStream is, OutputStream os) { |