处理android中不推荐使用的覆盖

时间:2017-06-25 11:19:19

标签: android override deprecated

我正在更新我的Android应用程序以使用最新版本(它是使用Lollipop开发的)。在检查代码时,我看到了几个弃用的方法。感谢以前的问题,我已经了解了如何处理对depercated方法的调用(检查targetSdkVersion> Build.VERSION_CODES ..等) 但是,对于已弃用的方法有几种覆盖。我该如何处理? 例如我使用WebViewClient(),其中我覆盖了onReceivedError(..)方法

@Override
public void onReceivedError(WebView view, int errorCode, String description, String failingUrl) {
    ...
    super.onReceivedError(view, errorCode, description, failingUrl);
}

文档说在API23中弃用了tis方法,现在我需要使用onReceivedError(WebView view, WebResourceRequest request, WebResourceError error)

我的问题是,如何编写已弃用方法的检查? 我可以这样做:

@TargetApi(Build.VERSION_CODES.M) 
@Override
onReceivedError(WebView view, WebResourceRequest request, WebResourceError error){...}

@SuppressWarnings("deprecation")
onReceivedError(WebView view, WebResourceRequest request, WebResourceError error){..}

我需要额外检查吗?

2 个答案:

答案 0 :(得分:0)

您可以通过类似的声明进行检查:

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
            do some work for LOLLIPOP
        } else {
            do some work for older versions
        }

答案 1 :(得分:0)

  

我的问题是,如何编写已弃用方法的检查?

回调?你没有。如果您的minSdkVersion足够高,只需使用较新的回调即可。否则,只需使用较旧的回调。例外情况是,如果文档告诉您不这样做,可能基于targetSdkVersion,但我无法想到发生这种情况的任何情况。

为了向后兼容,旧的回调仍然有效。在较新的设备上,如果没有实现较新的设备,它们会自动“退回”使用旧的回调。