有没有办法包含基于API级别的库或Android的if语句

rbz*_*rbz 4 android

所以我有一个API问题.所以我正在创建一个AndroidHttpClient用于从我的服务器下载位图图像的类.问题是,它的API级别是8,我希望从API 1及更高版本中使用它.现在我知道我可以使用DefaultHttpClient(API是1级),但有一种方法我可以使用它们,由Build.VERSION.SDK区分(btw thanx用于快速休息,Konstantin Burov和iandisme).

因此,例如,如果我的设备是2.2我使用AndroidHttpClient,其他任何使用DefaultHttpClient.

当然,如果我导入库,它将在任何设备1.5到2.1上给我一个错误.

任何建议都会非常感激,因为将来我会想要根据API设置其他偏好.

ian*_*sme 5

我会通过两个类来实现这一点,每个类都interface使用您需要的方法实现.让我们叫的interface BitmapDownloader,两个班Downloader1Downloader2(我知道的类名吸,但我不觉得可怕的创意).

Downloader1import用老图书馆和Downloader2意志import,并使用新的.您的代码看起来像这样:

BitmapDownloader bd;
int version = Integer.parseInt(Build.VERSION.SDK);

if (version >= Build.VERSION_CODES.FROYO){
    bd = new Downloader2();
} else {
    bd = new Downloader1();
}

bd.doBitmapDownloaderStuff();
Run Code Online (Sandbox Code Playgroud)