微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

即使我指定了api级别,Android也会弃用警告

我编码到api级别11.所以为了得到显示器的宽度,我有以下功能

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB_MR2) {
        Point size = new Point();
        display.getSize(size);
        width = size.x;
    }
    else {
        width = display.getWidth();
    }

我做了所有这些,所以我不会得到弃用警告.但我仍然得到getWidth的警告.为什么警告不会消失?

我也得到一个错误,因为getSize说呼叫要求api等级13但是检测到11.

解决方法:

IDE不够智能,无法实现您在此处尝试的操作,因此您仍然会收到警告.

如果你想要摆脱它们,你可以定义两种方法:一种是在Honeycomb路线中执行代码,一种是注释@TargetApi(13),另一种是使用注释@在另一条路径中执行代码. SuppressWarnings( “弃用”).就个人而言,我不担心.

例:

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB_MR2) {
    width = getWidthHoneycombMR2();
}
else {
    width = getWidthLegacy(display);
}

...

@TargetApi(13)
public int getWidthHoneycombMR2() {
    Point size = new Point();
    display.getSize(size);
    return size.x;
}

@SuppressWarnings("deprecation")
public int getWidthLegacy(display display) {
    return display.getWidth();
}

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐