2016-06-09 3 views
0

Я работаю над проектом, который работает по API 19 как минимум.Осужденные методы выполняются последним API?

Я использую WebView однако для того, чтобы справиться с ошибками, я использую на WebViewClient метод OnReceivedError и как вы можете видеть here, есть два метода, один осуждается и другой, который работает только на API 23.

Я сделал несколько Researchs, и я видел, чтобы решить проблему этого кода

 @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)?

Благодаря

ответ

2

В функции нижнего уровня, проверьте версию сборки и немедленно вернуться, если версия M или более поздняя версия.

+0

Вау, спасибо за этот быстрый ответ, так что, как вы сказали, устройство, работающее на уровне API 23, выполнит обе функции, поэтому возврат отменит первый, верно? –

+0

Право. Таким образом, только один будет выполняться на любом устройстве –

Смежные вопросы