StrictMode жалуется на то, что InputStream не закрывается

Я получаю следующее нарушение, о котором сообщает StrictMode в Android.

02-05 04: 07: 41.190: ОШИБКА / StrictMode (15093): был получен ресурс при трассировке прикрепленного стека, но никогда не выпускается. См. Java.io.Closeable для информация по предотвращению утечки ресурсов. 02-05 04: 07: 41.190: ОШИБКА / StrictMode (15093): java.lang.Throwable: явное завершение метод 'close' не вызывается

Это коряво из-за того, что потоки не закрываются должным образом. Однако не следует ли закрытие в закрывать базовые потоки? В чем может быть причина отмеченной ошибки?

    private ArrayList loadPath() {
        ArrayList uris = new ArrayList();
        if (mFile.exists()) {
            ObjectInputStream in = null;
            try {
                in = new ObjectInputStream(new BufferedInputStream(
                         new FileInputStream(mFile), STREAM_BUFFER_SIZE));
                ArrayList strings = new ArrayList();
                strings.addAll((ArrayList) in.readObject());
                for (String string : strings) {
                    uris.add(Uri.parse(string));
                }
            } catch (Exception e) {
                mFile.delete();
            } finally {
                IOUtils.closeQuietly(in);
            }
        }
        return uris;
     }

    public static void closeQuietly(InputStream input) {
        try {
            if (input != null) {
                input.close();
            }
        } catch (IOException ioe) {
            // ignore
        }
    }

8
задан Graham Borland 20 September 2012 в 21:29
поделиться