Я получаю сообщение о следующем нарушении с помощью 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 не вызывается
Он пишет о неправильном закрытии потоков. Однако разве закрытие in
не должно закрывать базовые потоки? В чем может быть причина отмеченной ошибки?
private ArrayList<Uri> loadPath() {
ArrayList<Uri> uris = new ArrayList<Uri>();
if (mFile.exists()) {
ObjectInputStream in = null;
try {
in = new ObjectInputStream(new BufferedInputStream(
new FileInputStream(mFile), STREAM_BUFFER_SIZE));
ArrayList<String> strings = new ArrayList<String>();
strings.addAll((ArrayList<String>) 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
}
}
close()
встроен в предложениеfinally
. - person Graham Borland   schedule 24.09.2012