次のコードで使用しているカーソルがあります。しかし、カーソルが使用されて不要になった後は、カーソルを閉じたいと思います。問題は、カーソルが return ステートメントで使用されていることですが、return ステートメントの後でカーソルを閉じることができません。これは、到達できないコードだからです。returnステートメントで使用されているため、その行より上で閉じることはできません。カーソルを閉じるにはどうすればよいですか? これは古い managedQuery とは異なります。閉じる必要があると思います。
public String getPath(Uri uri) {
String[] projection = { MediaStore.Audio.Media.DATA };
Cursor cursor = getContentResolver().query(uri, projection, null, null, null);
int column_index = cursor
.getColumnIndexOrThrow(MediaStore.Audio.Media.DATA);
cursor.moveToFirst();
return cursor.getString(column_index);
// cursor.close() <--- not possible because it is unreachable code after return
}