Android API上的AsyncTask Thread_Pool_Executor <11

Edd*_*Edd 1 compatibility android android-asynctask

我试图允许我的应用程序在旧版Android,特别是API 10上运行.

我已经下载了支持包并用它们来解决一些问题但是我很难解决这个问题:

字段需要API级别11(当前最小值为10):android.os.AsyncTask #THREAD_POOL_EXECUTOR

Thread_Pool_Executor方法仅在API 11中添加.

有什么办法可以在API 10中使用它,或者我必须恢复到:

myAsyncTask().execute();
Run Code Online (Sandbox Code Playgroud)

代替:

myAsyncTask.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR);
Run Code Online (Sandbox Code Playgroud)

如果是这样,我如何检查API级别?

Com*_*are 13

步骤1:将构建目标(例如,Eclipse中的项目>属性> Android)设置为API级别11或更高级别.

第2步:Build.VERSION.SDK_INT用于确定您的API级别,executeOnExecutor()仅在较新的Android设备上使用.

例如,您可以在某处使用此静态实用程序方法:

  @TargetApi(Build.VERSION_CODES.HONEYCOMB)
  static public <T> void executeAsyncTask(AsyncTask<T, ?, ?> task, T... params) {
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) {
      task.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR, params);
    }
    else {
      task.execute(params);
    }
  }
Run Code Online (Sandbox Code Playgroud)

然后,要执行任务,只需调用executeAsyncTask(),将AsyncTask实例和您希望传递给doInBackground()方法的任何参数传递给它.executeAsyncTask()executeOnExecutor()在API Level 11+ execute()上选择或在旧设备上使用.