2015-05-14 150 views
0

我使用volley作为我的android应用程序的网络库。 现在主要我想处理两种类型的错误1.身份验证2.网络错误VollyError在下面的API上返回null Leval 21 android

下面的代码段代码完美地工作在棒棒糖上。但是,当我在较低的API 21上运行应用程序时,那么VolleyError的对象将返回null。

public Response.ErrorListener getErrorListener() { 
     return new Response.ErrorListener(){ 

      @Override 
      public void onErrorResponse(VolleyError error) { 
       error.printStackTrace(); 
       if(error instanceof AuthFailureError) { 
        Toast.makeText(mCtx, "Invalid User", Toast.LENGTH_LONG).show(); 
        AppUtility.dismissDialog(); 
       } else if (error instanceof NetworkError) { 
        final EspecAlertDialog err = EspecAlertDialog.newInstance("Network Error", "Please Check your Internet Connection", "Setting", "Ok"); 
        err.show(((FragmentActivity) mCtx).getSupportFragmentManager(), "error"); 
        err.setmOnDialogClickedListener(new EspecAlertDialog.OnDialogClickedListener() { 
         @Override 
         public void onDialogPositiveButtonClicked(View v) { 
          ((FragmentActivity) mCtx).startActivityForResult(new Intent(android.provider.Settings.ACTION_SETTINGS), 0); 
         } 

         @Override 
         public void onDialogNegativeButtonClicked(View v) { 
          err.dismiss(); 
         } 
        }); 
        AppUtility.dismissDialog(); 
       } 
      } 
     }; 
    } 

注意:上面的代码是写在SingleTone类上的。

回答

1

检查最新版本并执行每那个版本代码:

if (Lollipop) { 
    //Lollipop code 
} else { 
    //below Lollipop cod 
} 
相关问题