Cursor.close会关闭与其关联的Database。
以DownloadManager中的CursorTranslator为例。
CursorTranslator继承CursorWrapper
CursorTranslator中包裹的cursor是ContentResolver的内部类CursorWrapperInner.
CursorWrapperInner中包裹了BulkCursorToCursorAdapter
BulkCursorToCursorAdaptor将服务端返回的IBulkCursor适配成本地进程可以使用的Cursor类型。
BulkCursorToCursorAdaptor继承于AbstractWindowedCursor。
AbstractWindowedCursor有一个成员变量是mWindow(CursorWindow类型)
AbstractWindowedCursor继承与AbstractCursor,并且覆盖了onDeactivateOrClose方法。
@Override
protected void onDeactivateOrClose() {
super.onDeactivateOrClose();
closeWindow();
}
closeWindow方法的实现是: