假设targetSdkVersion
为x
,minSdkVersion
为y
(x > y
),并且有一种方法,在{{ 1}},但x
不支持备选方案。如何解决这个问题?
例如,y
在API级别new SoundPool(int, int, int)
中已弃用,替代方法是使用21
,但SoundPool.Builder
不能在API级{{1}中使用}}。
在这种情况下如何做?
答案 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);
}
}