2016-10-10 6 views
2

targetSdkVersionxあり、minSdkVersionyである(x > y)、及びxに廃止されたが、別の一つはyでサポートされていない方法があると仮定する。この問題を解決するには?Android向けマルチAPIレベルでdeprecatedメソッドを使用するにはどうすればよいですか?

例えば、new SoundPool(int, int, int)は、APIレベル21に廃止され、そして別の方法は、SoundPool.Builderを使用することであるが、SoundPool.Builderは、APIレベル14に使用することができません。

この場合の操作方法は?

+0

少なくとも旧式のデバイスバージョンでは廃止予定のメソッドを使用してください。 – CommonsWare

答えて

3

あなたはOSのバージョンのランタイムチェックを行い、新しいものには、関数を書く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

を使用することができますが、その後古いバージョンでは非推奨メソッドnew SoundPool(int, int, int)を使用することができ、それがnecassaryパラメータをacccepts

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

} 
関連する問題