gpt4 book ai didi

android - Android API <11 上的 AsyncTask Thread_Pool_Executor

转载 作者:行者123 更新时间:2023-11-29 14:20:46 25 4
gpt4 key购买 nike

我试图让我的应用程序在旧版本的 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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com