Nivel de la API de Android <19 y "prueba puede utilizar la administración de recursos automática" warning
Tengo este pedazo de código
private void copyFile(File src, File dst) throws IOException { FileChannel inChannel = new FileInputStream(src).getChannel(); FileChannel outChannel = new FileOutputStream(dst).getChannel(); try { inChannel.transferTo(0, inChannel.size(), outChannel); }finally { if(inChannel != null) { inChannel.close(); } outChannel.close(); } }
Que genera la advertencia molesta "intentar utilizar la gestión automática de recursos". El prolem es que no puedo usar Java 7 try-with-resources causa que mi aplicación apunte al nivel 14 (tengo un error si lo uso). ¿Hay una manera de suprimir esa advertencia molesta?
- Android SQLite Contraint Conflicto. El intento / captura no pudo atrapar
- SQLiteConstraintException no detectado
- 'Catching' OutOfMemoryError soluciona completamente el problema de falta de memoria?
- Android no es compatible con Java v7 +, así que ¿debo usar múltiples capturas o una captura con cheques de instanceof?
- Android, ¿cómo mostrar un diálogo de error de un try catch?
- Capture todas las posibles excepciones de Android en todo el mundo y recargue la aplicación
- No se puede capturar Java (Android) Excepción con try-catch
- ¿Es una práctica aceptable en Java anidar las sentencias try / catch?
- Utilizar try / catch para evitar que la aplicación se bloquee
- Android: ¿Cómo capturar la Excepción fatal lanzada desde una biblioteca de referencia?
@SuppressWarnings ("TryFinallyCanBeTryWithResources") hizo el truco 🙂
@SuppressLint("NewApi")
también funcionará =)
Y por ejemplo:
@SuppressLint("NewApi") public static File saveImage(Bitmap bitmap) { File file = null; if (isExternalStorageWritable()) { file = new File(getFolderStorageDirectory(), getFileNameImage()); try (FileOutputStream out = new FileOutputStream(file)) { bitmap.compress(Bitmap.CompressFormat.JPEG, 90, out); } catch (Exception e) { e.getMessage(); } } return file; }
¡Espero eso ayude!