- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我试图让我的应用程序在旧版本的 Android 上运行,特别是 API 10。
我已经下载了支持包并使用它们解决了一些问题,但我正在努力解决这个问题:
Field requires API level 11 (current min is 10): android.os.AsyncTask#THREAD_POOL_EXECUTOR
Thread_Pool_Executor 方法仅在 API 11 中添加。
我有什么方法可以在 API 10 中使用它,还是我必须恢复到:
myAsyncTask().execute();
代替:
myAsyncTask.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR);
如果可以,我该如何检查 API 级别?
最佳答案
第 1 步:将构建目标(例如,项目 > 属性 > Eclipse 中的 Android)设置为 API 级别 11 或更高级别。
第 2 步:使用 Build.VERSION.SDK_INT
确定您的 API 级别,以便仅在较新的 Android 设备上使用 executeOnExecutor()
。
例如,您可以在某处使用此静态实用程序方法:
@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);
}
}
然后,要执行任务,只需调用 executeAsyncTask()
,将您的 AsyncTask
实例和您想要传递给 doInBackground()< 的任何参数传递给它
方法。 executeAsyncTask()
将在 API 级别 11+ 上选择 executeOnExecutor()
或在旧设备上使用 execute()
。
关于android - Android API <11 上的 AsyncTask Thread_Pool_Executor,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18764195/
如何在不使用 get() 的情况下将多个 AsyncTask 的值返回到列表中? 我目前正在这样做,但我知道这是不对的。 for (int i=0; i != mediaList.size(); i+
09-22 15:18:06.343: E/AndroidRuntime(374): java.lang.NoSuchFieldError: android.os.AsyncTask.THREAD_P
我想在 AsyncTask.THREAD_POOL_EXECUTOR 上运行多个 AsyncTask。我正在使用以下代码。 Tasks[i].executeOnExecutor(AsyncTask.T
我必须在 AsynTask 中使用 THREAD_POOL_EXECUTOR,我知道它属于 API 11 及更高版本。我用这段代码检查了它: if (Build.VER
我试图让我的应用程序在旧版本的 Android 上运行,特别是 API 10。 我已经下载了支持包并使用它们解决了一些问题,但我正在努力解决这个问题: Field requires API level
我有一些任务需要在 Android 上并发处理,我想使用某种线程池来完成这些任务。当使用 AsyncTask.THREAD_POOL_EXECUTOR 执行 AsyncTask 时,我无法在文档中找到
我正在使用 AsyncTask 进行网络操作并将 minSDKVersion 设置为 8。我正在尝试执行 AsyncTask,就像这样,它给出红线错误然后我需要每次清理项目然后它才能工作。 downl
我是一名优秀的程序员,十分优秀!