2015-04-07 6 views
13

ich dieses Stück Code habenAndroid API-Ebene <19 und „versuchen automatische Ressourcenverwaltung verwenden können,“ Warnung

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

    } 

} 

, die das lästige Warnung „versuchen automatische Ressourcenverwaltung verwenden können“ erzeugt. Das Prolem ist, dass ich Java 7 nicht verwenden kann, try-with-resources verursachen meine APP-Ziele API-Ebene 14 (ein Fehler, wenn ich es benutze). Gibt es eine Möglichkeit, diese nervige Warnung zu unterdrücken?

+1

Verwenden Sie einen SuppressLint –

+0

und welche ID sollte ich verwenden? Ich möchte nicht "alle" verwenden .. –

Antwort

19

@SuppressWarnings ("TryFinallyCanBeTryWithResources") hat den Trick :)

+0

dies entfernt nur die Warnung, aber es wird nicht auf echten Geräten funktionieren <19 – huluyige

+0

Also jeder Vorschlag? @Huluyige – KaKa

+1

@KaKa nicht verwenden "versuchen-mit-Ressourcen" von Java 7 :) – huluyige

0

@SuppressLint("NewApi") wird auch funktionieren =)

Und zum Beispiel:

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

Hoffe, es hilft!