我正在写一个Android应用程序,它的目标是API级别15,但我也想保持与旧的API级别(min-sdk 7)的向后兼容性。
我将通过根据当前API级别设置决定使用哪些代码的条件来实现这一点(如下所示)。我认为这是一个很好的方法,我只是想问一下,是否可以有这么多不推荐使用的方法(比如display.getWidth()),因为在API8和15之间有很多变化。如果是这样的话,在这种情况下使用@SuppressWarning("deprecation")是否合适?
例如,对于API级别<= 8和>= 9,使用多个API不是更好吗?(尽管developer.android.com不推荐这样做。
Display display = ((WindowManager) getContext().getSystemService(Context.WINDOW_SERVICE)).getDefaultDisplay();
Point screenSize = new Point();
// calculate the width
float width;
if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB_MR2) {
display.getSize(screenSize);
width = screenSize.x;
} else {
width = display.getWidth();
}谢谢!
发布于 2012-04-16 03:02:45
你必须问自己几个问题:
在您的示例中,getWidth()已被弃用,取而代之的是使用getSize(Point),这需要API13级。因此,在API13级之前,您所拥有的只有getWidth(),它在当时并未被弃用。保留这些不推荐使用的方法的原因很大程度上是考虑到向后兼容性(同时避免破坏每个依赖它的应用程序)。
所以回答你的问题,是的,在这种情况下这是很好的,是的,这是@SuppressWarning("deprecation")的一个很好的用法。
https://stackoverflow.com/questions/10164896
复制相似问题