我不知道为什么我的问题被否决了,因为这确实是 android 版本之间的 Google 兼容性问题。
我使用了以下帮助类来执行异步任务:
public class AsyncTaskExecutionHelper {
static class HoneycombExecutionHelper {
public static <P> void execute(AsyncTask<P, ?, ?> asyncTask, boolean parallel, P... params) {
Executor executor = parallel ? AsyncTask.THREAD_POOL_EXECUTOR : AsyncTask.SERIAL_EXECUTOR;
asyncTask.executeOnExecutor(executor, params);
}
}
public static <P> void executeParallel(AsyncTask<P, ?, ?> asyncTask, P... params) {
execute(asyncTask, true, params);
}
public static <P> void executeSerial(AsyncTask<P, ?, ?> asyncTask, P... params) {
execute(asyncTask, false, params);
}
private static <P> void execute(AsyncTask<P, ?, ?> asyncTask, boolean parallel, P... params) {
if (Build.VERSION.SDK_INT >= 11) {
HoneycombExecutionHelper.execute(asyncTask, parallel, params);
} else {
asyncTask.execute(params);
}
}
}
按以下方式调用您的异步任务:
CustomAsynkTas customTask = new CustomAsynkTask();
AsyncTaskExecutionHelper.executeParallel(customTask);
在哪里
CustomAsynkTask extends AsyncTask
{
//etc
}
经过测试,适用于所有安卓版本。