summaryrefslogtreecommitdiffstats
path: root/core
diff options
context:
space:
mode:
authorDianne Hackborn <hackbod@google.com>2010-08-09 16:32:52 -0700
committerDianne Hackborn <hackbod@google.com>2010-08-09 16:32:52 -0700
commitdebb2e25b3ce2f0f5195a2895dd1882fc172d4d8 (patch)
tree7e3a6034a0c4ac8dead6c0a445dc5c58cf2e5bf8 /core
parent02890fd0f98b3b8d98baf0bda1ea906afd723d8b (diff)
downloadframeworks_base-debb2e25b3ce2f0f5195a2895dd1882fc172d4d8.zip
frameworks_base-debb2e25b3ce2f0f5195a2895dd1882fc172d4d8.tar.gz
frameworks_base-debb2e25b3ce2f0f5195a2895dd1882fc172d4d8.tar.bz2
This may fix LoaderManager bug where a closed cursor could be used.
Change-Id: I362d5f86dcbdbede921ef9d29c849ed6401850ea
Diffstat (limited to 'core')
-rw-r--r--core/java/android/app/LoaderManager.java13
1 files changed, 8 insertions, 5 deletions
diff --git a/core/java/android/app/LoaderManager.java b/core/java/android/app/LoaderManager.java
index e7bdd8b..28abcaa 100644
--- a/core/java/android/app/LoaderManager.java
+++ b/core/java/android/app/LoaderManager.java
@@ -185,11 +185,14 @@ class LoaderManagerImpl implements LoaderManager {
void stop() {
if (DEBUG) Log.v(TAG, " Stopping: " + this);
mStarted = false;
- if (mLoader != null && mListenerRegistered) {
- // Let the loader know we're done with it
- mListenerRegistered = false;
- mLoader.unregisterListener(this);
- mLoader.stopLoading();
+ if (!mRetaining) {
+ if (mLoader != null && mListenerRegistered) {
+ // Let the loader know we're done with it
+ mListenerRegistered = false;
+ mLoader.unregisterListener(this);
+ mLoader.stopLoading();
+ }
+ mData = null;
}
}