弃用的方法是否由最新的API执行?

时间:2016-06-09 14:18:09

标签: android webkit

我致力于一个至少在API 19上运行的项目。

我使用的是WebView但是,为了处理错误,我使用了WebViewClient方法OnReceivedError,您可以看到here, 有两种方法,一种是弃用的,另一种只适用于API 23.

我做了一些研究,我看到解决了这个代码的问题

        @SuppressWarnings("deprecation")
        @Override
        public void onReceivedError(WebView view, int errorCode, String description, String failingUrl) {

        }

        @TargetApi(Build.VERSION_CODES.M)
        @Override
        public void onReceivedError(WebView view, WebResourceRequest request, WebResourceError error) {
            onReceivedError(view, error.getErrorCode(), error.getDescription().toString(), request.getUrl().toString());
        }

但是,我想知道在使用API​​ 23的设备上,onReceivedError是否会执行两次。如果是这种情况,无论API如何(最小19,最大23),我该怎么做才能执行一次代码?

由于

1 个答案:

答案 0 :(得分:3)

在较低级别的功能中,检查构建版本并在版本为M或更高版本时立即返回。