首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在向后兼容的代码中有这么多不推荐使用的方法可以吗?

在向后兼容的代码中有这么多不推荐使用的方法可以吗?
EN

Stack Overflow用户
提问于 2012-04-16 02:39:30
回答 1查看 3.3K关注 0票数 7

我正在写一个Android应用程序,它的目标是API级别15,但我也想保持与旧的API级别(min-sdk 7)的向后兼容性。

我将通过根据当前API级别设置决定使用哪些代码的条件来实现这一点(如下所示)。我认为这是一个很好的方法,我只是想问一下,是否可以有这么多不推荐使用的方法(比如display.getWidth()),因为在API8和15之间有很多变化。如果是这样的话,在这种情况下使用@SuppressWarning("deprecation")是否合适?

例如,对于API级别<= 8和>= 9,使用多个API不是更好吗?(尽管developer.android.com不推荐这样做。

代码语言:javascript
运行
复制
    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();
    }

谢谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-04-16 03:02:45

你必须问自己几个问题:

  • 对于将执行此代码的应用编程接口级别是否已弃用?
  • 如果是,是否建议或提供替代方案?

在您的示例中,getWidth()已被弃用,取而代之的是使用getSize(Point),这需要API13级。因此,在API13级之前,您所拥有的只有getWidth(),它在当时并未被弃用。保留这些不推荐使用的方法的原因很大程度上是考虑到向后兼容性(同时避免破坏每个依赖它的应用程序)。

所以回答你的问题,是的,在这种情况下这是很好的,是的,这是@SuppressWarning("deprecation")的一个很好的用法。

票数 9
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10164896

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档