2016-10-10 2 views
2

Предположим, что targetSdkVersion является x и minSdkVersion является y (x > y), и существует способ, который является устаревшим в x, но альтернатива одна не поддерживается в y. Как решить эту проблему?Как использовать устаревший метод на уровнях API, ориентированных на Android?

Например, new SoundPool(int, int, int) является устаревшим в уровне API 21, и альтернативный способ заключается в использовании SoundPool.Builder, но SoundPool.Builder не может быть использована в уровне API 14.

Как это сделать в этом случае?

+0

Используйте устаревший метод, по крайней мере, на старых версиях устройства. – CommonsWare

ответ

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 
} 
3

Написать функцию, которая acccepts necassary параметров и выходы SoundPool объект в зависимости от версии SDK:

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); 
    } 

} 
Смежные вопросы