2016-06-09 4 views
0

Ich arbeite an einem Projekt, das zumindest auf der API 19 funktioniert.Werden veraltete Methoden von der neuesten API ausgeführt?

Ich bin jedoch ein WebView verwenden, um Fehler zu behandeln, verwende ich auf der WebViewClient die Methode OnReceivedError und wie Sie here sehen können, gibt es zwei Verfahren, ein veraltet und eine andere, die nur auf der API funktioniert 23.

ich habe einige Forschungen und ich sah das Problem diesen Code

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

aber ich fragte mich, zu lösen, wenn auf eine Vorrichtung, die 23 auf der API arbeitet, würde onReceivedError zweimal ausführen werden. Wenn dies der Fall ist, was kann ich tun, um den Code einmal auszuführen, unabhängig von der API (min 19, max 23)?

Dank

Antwort

2

In der unteren Ebene Funktion, überprüfen Sie die Build-Version und sofort zurück, wenn die Version M oder höher ist.

+0

Wow, danke für diese schnelle Antwort, also, wie Sie sagten, ein Gerät, das auf einer API-Ebene 23 arbeitet, wird beide Funktionen ausführen, so dass die Rückkehr die erste abbrechen wird, habe ich recht? –

+0

Rechts. Auf diese Weise wird nur eines auf jedem Gerät ausgeführt –

Verwandte Themen