Loading core/java/android/app/LoaderManager.java +14 −10 Original line number Diff line number Diff line Loading @@ -339,13 +339,16 @@ class LoaderManagerImpl extends LoaderManager { } } void cancel() { boolean cancel() { if (DEBUG) Log.v(TAG, " Canceling: " + this); if (mStarted && mLoader != null && mListenerRegistered) { if (!mLoader.cancelLoad()) { final boolean cancelLoadResult = mLoader.cancelLoad(); if (!cancelLoadResult) { onLoadCanceled(mLoader); } return cancelLoadResult; } return false; } void destroy() { Loading Loading @@ -667,20 +670,21 @@ class LoaderManagerImpl extends LoaderManager { mInactiveLoaders.put(id, info); } else { // We already have an inactive loader for this ID that we are // waiting for! What to do, what to do... if (!info.mStarted) { // The current Loader has not been started... we thus // have no reason to keep it around, so bam, slam, // thank-you-ma'am. // waiting for! Try to cancel; if this returns true then the task is still // running and we have more work to do. if (!info.cancel()) { // The current Loader has not been started or was successfully canceled, // we thus have no reason to keep it around. Remove it and a new // LoaderInfo will be created below. if (DEBUG) Log.v(TAG, " Current loader is stopped; replacing"); mLoaders.put(id, null); info.destroy(); } else { // Now we have three active loaders... we'll queue // up this request to be processed once one of the other loaders // finishes or is canceled. if (DEBUG) Log.v(TAG, " Current loader is running; attempting to cancel"); info.cancel(); // finishes. if (DEBUG) Log.v(TAG, " Current loader is running; configuring pending loader"); if (info.mPendingLoader != null) { if (DEBUG) Log.v(TAG, " Removing pending loader: " + info.mPendingLoader); info.mPendingLoader.destroy(); Loading Loading
core/java/android/app/LoaderManager.java +14 −10 Original line number Diff line number Diff line Loading @@ -339,13 +339,16 @@ class LoaderManagerImpl extends LoaderManager { } } void cancel() { boolean cancel() { if (DEBUG) Log.v(TAG, " Canceling: " + this); if (mStarted && mLoader != null && mListenerRegistered) { if (!mLoader.cancelLoad()) { final boolean cancelLoadResult = mLoader.cancelLoad(); if (!cancelLoadResult) { onLoadCanceled(mLoader); } return cancelLoadResult; } return false; } void destroy() { Loading Loading @@ -667,20 +670,21 @@ class LoaderManagerImpl extends LoaderManager { mInactiveLoaders.put(id, info); } else { // We already have an inactive loader for this ID that we are // waiting for! What to do, what to do... if (!info.mStarted) { // The current Loader has not been started... we thus // have no reason to keep it around, so bam, slam, // thank-you-ma'am. // waiting for! Try to cancel; if this returns true then the task is still // running and we have more work to do. if (!info.cancel()) { // The current Loader has not been started or was successfully canceled, // we thus have no reason to keep it around. Remove it and a new // LoaderInfo will be created below. if (DEBUG) Log.v(TAG, " Current loader is stopped; replacing"); mLoaders.put(id, null); info.destroy(); } else { // Now we have three active loaders... we'll queue // up this request to be processed once one of the other loaders // finishes or is canceled. if (DEBUG) Log.v(TAG, " Current loader is running; attempting to cancel"); info.cancel(); // finishes. if (DEBUG) Log.v(TAG, " Current loader is running; configuring pending loader"); if (info.mPendingLoader != null) { if (DEBUG) Log.v(TAG, " Removing pending loader: " + info.mPendingLoader); info.mPendingLoader.destroy(); Loading