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