1

アプリを古いバージョンの Android、具体的には API 10 で実行できるようにしようとしています。

サポート パッケージをダウンロードし、それらを使用していくつかの問題を解決しましたが、この問題を解決するのに苦労しています。

フィールドには API レベル 11 が必要です (現在の最小値は 10 です): android.os.AsyncTask#THREAD_POOL_EXECUTOR

Thread_Pool_Executor メソッドは、API 11 でのみ追加されました。

API 10 でこれを使用できる方法はありますか、または元に戻す必要がありますか:

myAsyncTask().execute();

それ以外の:

myAsyncTask.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR);

その場合、API レベルを確認するにはどうすればよいですか?

4

2 に答える 2

0

以下は、AsyncTasks に常に追加している便利なテンプレート メソッドです。

public class MyClass extends AsyncTask <MyInput<Type1>, MyProgress<Type2>, MyResult<Type3>> {

    @TargetApi(Build.VERSION_CODES.HONEYCOMB)
    public void start(MyInput<Type1> params) {
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) {
          this.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR, params);
        } else {
           this.execute(params);
        }
    }
}

を呼び出すことによりMyClass.start(params)、次の利点が得られます。

  1. さまざまなプラットフォームのバージョンの依存関係の醜い詳細は、ユーザーから隠されています
  2. THREAD_POOL_EXECUTOR を使用するメカニズムは、ユーザーから隠されています。
于 2014-04-04T04:15:07.960 に答える