我正在编写一个针对API级别15的Android应用程序,但我也希望保持与旧API级别(min-sdk 7)的向后兼容性。
我将通过根据当前API级别决定使用哪些代码来实现这一目标(如下所示)。我想这是一个很好的方法,我只想询问是否可以使用这么多已弃用的方法(如display.getWidth()
),因为API级别8和15之间有很多变化。
如果是这样,如果在这种情况下好用@SuppressWarning("deprecation")
?
对于API级别< = 8和> = 9,使用多个APK会不会更好? (尽管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();
}
谢谢!
答案 0 :(得分:9)
你必须问自己一些问题:
在您的情况下,我们不推荐使用getWidth()
,而是使用getSize(Point)
,这需要API级别13.因此,在API级别13之前,您拥有的只是getWidth()
,时间没有被弃用。这些被弃用的方法保留的原因主要是考虑到向后兼容性(同时避免破坏每个依赖它的应用程序)。
所以回答你的问题,是的,在这种情况下这很好,是的,它很好地利用了@SuppressWarning("deprecation")
。