@SuppressWarnings vs @SuppressLint

¿Puede alguien explicarme las diferencias entre @SuppressWarnings y @SuppressLint ? ¿Cuándo debemos usar uno sobre otro?

He leído la documentación, pero todavía no entiendo las diferencias. Explicar usando un ejemplo / código de ejemplo será muy apreciado. Gracias.

En realidad hay dos lints: uno pertenece al compilador, por lo que es específico de Java, y uno pertenece a Google y es específico de Android.

Si tu advertencia trata de algo en Java que no es específico de Android, se suprime con @SuppressWarnings , y si es específico de Android, se suprime con @SuppressLint .

Avisos de Lint de Android

Las advertencias de Lint se enumeran aquí: http://tools.android.com/tips/lint-checks

Así que digamos que tiene una advertencia sobre los permisos que faltan, y la descripción de advertencia comienza "Esta comprobación explora a través de su código y bibliotecas y mira las API que se están utilizando, y comprueba esto contra el conjunto de permisos necesarios para acceder a esas API". En la página de advertencias de pelusa que se ha enlazado anteriormente, encontramos lo siguiente:

MissingPermission

Resumen: Permisos perdidos

Prioridad: 9/10 Gravedad: Error Categoría: Corrección

Esta comprobación explora a través de su código y bibliotecas y mira las API que se están utilizando, y comprueba esto contra el conjunto de permisos necesarios para acceder a esas API. Si el código que utiliza esas API se llama en tiempo de ejecución, entonces el programa se bloqueará.

Además, para los permisos que son revocables (con targetSdkVersion 23), el código de cliente también debe estar preparado para manejar las llamadas que lanzan una excepción si el usuario rechaza la solicitud de permiso en tiempo de ejecución.

Así que para suprimir esto, ponemos esta anotación en el código:

 @SuppressLint("MissingPermission") 

Advertencias del compilador

Digamos que encontramos esta advertencia:

"Cast no verificado: 'java.lang.Object' a 'java.lang.Integer' …"

Si está leyendo esto en la ventana emergente en Android Studio, hay un enlace More... al final. Al hacer clic en el enlace More... , el texto se expande y se encuentra en la parte inferior:

"Sugerencia: Pase -Xlint: desmarcado a javac para obtener más detalles."

Esto le dice que usted usaría "unchecked" en la anotación como esto:

 @SuppressWarnings("unchecked") 

Para obtener una lista de advertencias del compilador, ejecute javac -X :

 C:\>javac -X -Xlint Enable recommended warnings -Xlint:{all,auxiliaryclass,cast,classfile,deprecation,dep-ann,divzero,empty,fallthrough,finally,options,overloads,overrides,path,processing,rawtypes,serial,static,try,unchecked,varargs,-auxiliaryclass,-cast,-classfile,-deprecation,-dep-ann,-divzero,-empty,-fallthrough,-finally,-options,-overloads,-overrides,-path,-processing,-rawtypes,-serial,-static,-try,-unchecked,-varargs,none} Enable or disable specific warnings . . . 

Estos son los valores que puede utilizar en @SuppressWarnings .

  • Insertar} para completar el error de ClassBody incluso con paréntesis coincidentes
  • ¿Enfoques al error de desajuste de estado de MediaPlayer de Android en isPlaying ()?
  • Libgdx ScrollPane - ¿No se desplaza?
  • Android: Interrumpir el hilo contenido en un método
  • Android Studio, ProGuard no puede calcular hash de Classes.jar
  • Android httpclient.execute excepción
  • Creación de ruta desde los bordes del mapa de bits android
  • Adaptar la matriz de objetos a GSON Error
  • FileNotFoundException en el archivo proguard-rules.pro
  • ¿Cuál es la forma correcta de usar v8 :: Locker, y por qué debo usarlo?
  • Pestaña Switch onNewIntent causa IllegalStateException
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.