aboutsummaryrefslogtreecommitdiffstats
path: root/OpenPGP-Keychain-API
diff options
context:
space:
mode:
authorDominik Schürmann <dominik@dominikschuermann.de>2014-02-21 15:56:58 +0100
committerDominik Schürmann <dominik@dominikschuermann.de>2014-02-21 15:56:58 +0100
commit5d8867260946937498cf9e8d64fea3a9f53d9dd3 (patch)
tree866b7ec4daf920f6585727636e7d93330587ec71 /OpenPGP-Keychain-API
parent9a653d6a9ca44505f2379b73a357d0ffc4bc98cf (diff)
downloadopen-keychain-5d8867260946937498cf9e8d64fea3a9f53d9dd3.tar.gz
open-keychain-5d8867260946937498cf9e8d64fea3a9f53d9dd3.tar.bz2
open-keychain-5d8867260946937498cf9e8d64fea3a9f53d9dd3.zip
do not serialize async tasks
Diffstat (limited to 'OpenPGP-Keychain-API')
-rw-r--r--OpenPGP-Keychain-API/libraries/keychain-api-library/src/org/openintents/openpgp/util/OpenPgpApi.java11
1 files changed, 10 insertions, 1 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) {