我不确定这是否可能,或者我是否正确地考虑了这一点。
在高效显示位图的 Android 开发人员培训中,使用了自定义版本的 ,AsyncTask
以使代码与以下 android 版本兼容HONEYCOMB
。
这个很好的答案AsyncTask
解释了pre 和 post 中的操作之间的区别HONEYCOMB
。指南中提供自定义版本的原因是,如果快速滚动图像,pre HONEYCOMB
(任务池)中的默认值很容易崩溃。对于这种情况,需要默认发布版本(在附加线程上串行执行)。java.util.concurrent.RejectedExecutionException
GridView
HONEYCOMB
我可以通过在我的项目中使用更新版本的 来轻松做到这一点AsyncTask
(就像在开发人员培训示例中所做的那样),但这与未来的更改不太兼容。
我想做的是以下几点:
如果版本是
HONEYCOMB
或更高,请使用AsyncTask
框架中提供的实现,而如果版本更早,请使用AsyncTask
我的应用程序中提供的实现。
这可能(以及如何)还是我应该以不同的方式思考它?
编辑:
我了解如何根据 running 提供条件SDK_VERSION
。
我遇到的问题是这AsyncTask
是一个抽象类,这意味着我必须提供一个实现。例如,我有一个AsyncTask
调用myTask
,其扩展AsyncTask
如下:
public class myTask extends AsyncTask<Void, Void, Void> {
// Implementations for the abstract functions (doInBackground)
}
我如何决定AsyncTask
扩展哪个版本?