Merge "Calling close() outside of the main thread breaks stuff."
diff --git a/core/java/android/content/CursorLoader.java b/core/java/android/content/CursorLoader.java
index 50919d5..7af535b 100644
--- a/core/java/android/content/CursorLoader.java
+++ b/core/java/android/content/CursorLoader.java
@@ -50,19 +50,6 @@
Cursor mCursor;
- final static class CloseTask extends AsyncTask<Cursor, Void, Void> {
- @Override
- protected Void doInBackground(Cursor... params) {
- params[0].close();
- return null;
- }
- }
-
- static void closeAsync(Cursor cursor) {
- CloseTask closeTask = new CloseTask();
- closeTask.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR, cursor);
- }
-
/* Runs on a worker thread */
@Override
public Cursor loadInBackground() {
@@ -90,7 +77,7 @@
if (isReset()) {
// An async query came in while the loader is stopped
if (cursor != null) {
- closeAsync(cursor);
+ cursor.close();
}
return;
}
@@ -102,7 +89,7 @@
}
if (oldCursor != null && oldCursor != cursor && !oldCursor.isClosed()) {
- closeAsync(oldCursor);
+ oldCursor.close();
}
}
@@ -162,7 +149,7 @@
@Override
public void onCanceled(Cursor cursor) {
if (cursor != null && !cursor.isClosed()) {
- closeAsync(cursor);
+ cursor.close();
}
}
@@ -174,7 +161,7 @@
onStopLoading();
if (mCursor != null && !mCursor.isClosed()) {
- closeAsync(mCursor);
+ mCursor.close();
}
mCursor = null;
}