请选择 进入手机版 | 继续访问电脑版
  • 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

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

[复制链接]
菜鸟教程小白 发表于 2022-12-9 06:51:31 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题

我正在对 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。



Best Answer-推荐答案


IDE 不够智能,无法意识到您在此处尝试执行的操作,因此您仍然会收到警告。

如果你一心想要摆脱它们,你可以定义两个方法:一个执行 Honeycomb 路由中的代码,并具有注释 @TargetApi(13),第二个执行另一条 route 带有注释 @SuppressWarnings("deprecation") 的代码。就个人而言,我不会担心。

例子:

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

关于即使我指定了 api 级别,也会显示 Android 弃用警告,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20935922/

回复

使用道具 举报

懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关注0

粉丝2

帖子830918

发布主题
阅读排行 更多
广告位

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap