1

getView()からImageViewを返すArrayAdapterを含むGridViewを含むアプリケーションを終了するたびに、次のようなエラーが発生します。

01-15 17:28:55.715:E / StrictMode(6480):リソースは接続されたスタックトレースで取得されましたが、解放されませんでした。リソースリークを回避する方法については、java.io.Closeableを参照してください。E / StrictMode(6480):java.lang.Throwable:明示的な終了メソッド'close'は呼び出されません

この問題は、次のようないくつかの行を示しているようです。

imageView.setImageURI(uri)

何か案は?

4

1 に答える 1

4

特定の状況では、setImageURI()はInputStreamを開きますが、閉じません。回避策は次のとおりです。

InputStream is = null;
try { 
  if(uri != null) {
    is = getContentResolver().openInputStream(uri);
    Drawable d = Drawable.createFromStream(is, null);
    imageView.setImageDrawable(d);
  }
} catch(Exception e) {
  Log.e(TAG, "Unable to set ImageView from URI: " + e.toString());
} finally {
  org.apache.commons.io.IOUtils.closeQuietly(is);
}
于 2013-01-15T17:40:15.413 に答える