これが可能かどうか、またはこれを正しく考えているかどうかはわかりません。
ビットマップを効率的に表示するためのAndroid開発者トレーニングでは、のカスタムバージョンをAsyncTask使用して、以下のAndroidバージョンと互換性のあるコードを作成しますHONEYCOMB。
この素晴らしい答えAsyncTaskは、前と後の操作の違いを説明していHONEYCOMBます。ガイドでカスタムバージョンが提供されている理由は、画像のをすばやくスクロールすると、pre HONEYCOMB(タスクのプール)のデフォルトが非常に簡単にクラッシュするためjava.util.concurrent.RejectedExecutionExceptionです。GridViewこのシナリオでは、デフォルトのポストHONEYCOMBバージョン(追加スレッドでのシリアル実行)が必要です。
プロジェクトで新しいバージョンを使用することでこれを簡単に行うことができますAsyncTask(開発者トレーニングの例で行われたように)が、これは将来の変更とあまり互換性がありません。
私がやりたいことは次のとおりです。
バージョンが
HONEYCOMBそれ以上の 場合AsyncTaskは、フレームワークで提供されているの実装を使用しますが、それ以前の場合はAsyncTask、アプリケーションで提供されている実装を使用します。
これは可能ですか(そしてどのように)、それとも私はそれについて別の方法で考える必要がありますか?
編集:
実行に基づいて条件を提供する方法を理解していSDK_VERSIONます。
私が抱えている問題AsyncTaskは、抽象クラスであるということです。つまり、実装を提供する必要があります。たとえば、私は以下のように拡張するAsyncTask呼び出しを持っています:myTaskAsyncTask
public class myTask extends AsyncTask<Void, Void, Void> {
// Implementations for the abstract functions (doInBackground)
}
AsyncTaskのどのバージョンが拡張されているかをどのように判断しますか?