2015-04-07 17 views
13

Tôi có đoạn mã nàymức Android API <19 và "cố gắng có thể sử dụng quản lý tài nguyên tự động" cảnh báo

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

    } 

} 

mà tạo ra những cảnh báo phiền phức "thử có thể sử dụng quản lý tài nguyên tự động". Các prolem là tôi không thể sử dụng Java 7 try-with-resources gây ra ứng dụng của tôi nhắm mục tiêu api cấp 14 (có một lỗi nếu tôi sử dụng nó). Có cách nào để ngăn chặn cảnh báo phiền toái đó không?

+1

Sử dụng SuppressLint trên đó –

+0

và tôi nên sử dụng id nào? Tôi không muốn sử dụng "tất cả" .. –

Trả lời

19

@SuppressWarnings ("TryFinallyCanBeTryWithResources") đã làm các trick :)

+0

điều này chỉ loại bỏ cảnh báo, nhưng nó sẽ không hoạt động trên các thiết bị thực <19 – huluyige

+0

Vì vậy, bất kỳ đề nghị? @huluyige – KaKa

+1

@KaKa không sử dụng "try-with-resources" của java 7 :) – huluyige

0

@SuppressLint("NewApi") cũng sẽ làm việc =)

Và ví dụ:

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

Hy vọng nó sẽ giúp!

Các vấn đề liên quan