如何在面向Android的多API级别中使用弃用方法?

时间:2016-10-10 14:01:36

标签: android soundpool

假设targetSdkVersionxminSdkVersionyx > y),并且有一种方法,在{{ 1}},但x不支持备选方案。如何解决这个问题?

例如,y在API级别new SoundPool(int, int, int)中已弃用,替代方法是使用21,但SoundPool.Builder不能在API级{{1}中使用}}。

在这种情况下如何做?

2 个答案:

答案 0 :(得分:3)

您可以对操作系统版本进行运行时检查,然后在旧版本中使用已弃用的方法new SoundPool(int, int, int),而在新版本中,您可以使用SoundPool.Builder

if (android.os.Build.VERSION.SDK_INT < android.os.Build.VERSION_CODES.<YOUR_VERSION_X>) {
    //use old method
} else {
    //use new method
}

答案 1 :(得分:3)

编写一个函数,根据SDK版本接受necassary参数并输出SoundPool对象:

public SoundPool build(int, int, int) {
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
        return new SoundPool.Builder()
                //setParameters
                .build();
    } else {
        return new SoundPool(int, int, int);
    }

}