Java 如何支持不同的android操作系统?

Java 如何支持不同的android操作系统?,java,android,android-asynctask,Java,Android,Android Asynctask,我有一些问题。 我有两个方法,一个是用Api 11及以上调用的,另一个是旧Api调用的 我的项目有以下设置: 项目构建目标-谷歌API 2.3.3 清单文件: uses-sdk android:minSdkVersion="8" android:targetSdkVersion="18" 我的代码: abstract class DoAsyncRequest { protected abstract void DoRequest(Connection conn) throws Exc

我有一些问题。 我有两个方法,一个是用Api 11及以上调用的,另一个是旧Api调用的

我的项目有以下设置:

项目构建目标-谷歌API 2.3.3

清单文件:

uses-sdk android:minSdkVersion="8"
android:targetSdkVersion="18" 
我的代码:

abstract class DoAsyncRequest {
    protected abstract void DoRequest(Connection conn) throws Exception;
}

class DoAsyncRequestLegacy extends DoAsyncRequest {
    protected void DoRequest(Connection conn) throws Exception{
        new FetchTask(conn).execute();// FOR OLD API
    }
}


@TargetApi(11) class DoAsyncRequest_SDK11 extends DoAsyncRequest {
    protected void DoRequest(Connection conn) throws Exception{
        new FetchTask(conn).executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR, null);                    //FOR NEW API, but compiller says, that  THREAD_POOL_EXECUTOR cannot be resolved or is not a field
    }
}

致以最诚挚的问候。

通常我会在调用正确的方法之前进行测试:

  // change with the version you want to test
  if (Build.VERSION.SDK_INT < Build.VERSION_CODES.HONEYCOMB) { 

  } else {

  }

新建FetchTaskconn.executeOnExecutorAsyncTask.THREAD\u POOL\u EXECUTOR,null//对于新的API,但编译器说,线程池执行器无法解析,或者不是fieldP.S。我使用您的代码ifBuild.VERSION.SDK\u INT您应该始终使用最新版本作为构建目标。如果没有,编译器CQN将找不到新方法。@nicopico我已将项目生成目标设置为最新版本,但现在我看到错误,在生成路径错误未知之前无法生成项目Java问题请解释有关您的问题的详细信息。我已根据您的建议更改了代码。。但是我无法从api得到回应。。在我更改它之前,我可以从较低版本的api中获得响应。该代码应该可以按预期工作。新建FetchTaskconn.execute;是蜂窝之前的操作系统。新建FetchTaskconn.executeOnExecutorAsyncTask.THREAD\u POOL\u EXECUTOR,null;这将适用于操作系统蜂巢和更高版本。
 if (Build.VERSION.SDK_INT < Build.VERSION_CODES.HONEYCOMB) { 

     new FetchTask(conn).execute();// FOR OLD API

  } else {

     new FetchTask(conn).executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR, null);

  }