我喜欢在android.webkit.WebView中使用findAll / findAllAsync方法。 findAll已被弃用,Google建议使用需要Jelly Bean或更高版本的findAllAsync。但是,我喜欢我的应用程序来支持2.2+。我尝试了以下内容,但是我发现findAll(弃用)和findAllAysnc的错误警告(需要增加最低SDK版本):
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.JELLY_BEAN) {
myWebView.findAll(query);
else
{
myWebView.findAllAsync(query);
}
处理这个问题的最佳方法是什么?我应该只使用findAll并忽略弃用警告吗?
答案 0 :(得分:0)
使用findAll,如果警告真的太烦人,请添加@SuppressWarning("deprecation")
注释以明确禁止它。
这样做的一个问题是,当您在方法上使用此注释时,您可能会错过其他已弃用的调用,因为它将应用于整个方法。
答案 1 :(得分:0)
我相信答案有几个方面:
您在清单中将最低SDK版本和目标SDK版本设置为什么?
同样的问题,但是在Eclipse(或者你正在使用的任何IDE)中,Android构建API属性?
(我的回答好像你的问题是“如何摆脱android lint警告”,而不是“如何正确修复警告”..)
答案 2 :(得分:0)
有一种非常有趣和强大的方式来做你想要的,它被称为反射。来自Oracle的Java documentation:
反射通常被需要能力的程序使用 检查或修改在其中运行的应用程序的运行时行为 Java虚拟机。这是一个相对高级的功能,应该 只有掌握了基本面的开发人员才能使用 语言。
简而言之,反射允许您查明是否定义了类,您可以找到它的方法和属性,并在运行时调用类的功能!
我有一个应用程序需要处理Android 2.1设备上的音频焦点,但音频焦点不适用于那些版本,所以我使用这种技术。顺便说一下,这是一条坎坷的道路。我建议仔细阅读文档,并尝试遵循一些例子。