diff --git a/packages/SystemUI/src/com/android/systemui/recents/RecentsActivity.java b/packages/SystemUI/src/com/android/systemui/recents/RecentsActivity.java index 45348976d4989..75fbad880bd55 100644 --- a/packages/SystemUI/src/com/android/systemui/recents/RecentsActivity.java +++ b/packages/SystemUI/src/com/android/systemui/recents/RecentsActivity.java @@ -383,9 +383,6 @@ public class RecentsActivity extends Activity implements RecentsView.RecentsView filter.addAction(SearchManager.INTENT_GLOBAL_SEARCH_ACTIVITY_CHANGED); registerReceiver(mSystemBroadcastReceiver, filter); - // Register any broadcast receivers for the task loader - RecentsTaskLoader.getInstance().registerReceivers(this, mRecentsView); - // Private API calls to make the shadows look better try { Utilities.setShadowProperty("ambientShadowStrength", String.valueOf(35f)); @@ -451,6 +448,9 @@ public class RecentsActivity extends Activity implements RecentsView.RecentsView filter.addAction(ACTION_TOGGLE_RECENTS_ACTIVITY); filter.addAction(ACTION_START_ENTER_ANIMATION); registerReceiver(mServiceBroadcastReceiver, filter); + + // Register any broadcast receivers for the task loader + RecentsTaskLoader.getInstance().registerReceivers(this, mRecentsView); } @Override @@ -481,9 +481,15 @@ public class RecentsActivity extends Activity implements RecentsView.RecentsView protected void onStop() { super.onStop(); + // Remove all the views + mRecentsView.removeAllTaskStacks(); + // Unregister the RecentsService receiver unregisterReceiver(mServiceBroadcastReceiver); + // Unregister any broadcast receivers for the task loader + RecentsTaskLoader.getInstance().unregisterReceivers(); + // Stop listening for widget package changes if there was one bound if (mAppWidgetHost.isListening()) { mAppWidgetHost.stopListening(); @@ -496,7 +502,6 @@ public class RecentsActivity extends Activity implements RecentsView.RecentsView // Unregister the system broadcast receivers unregisterReceiver(mSystemBroadcastReceiver); - RecentsTaskLoader.getInstance().unregisterReceivers(); } @Override diff --git a/packages/SystemUI/src/com/android/systemui/recents/views/RecentsView.java b/packages/SystemUI/src/com/android/systemui/recents/views/RecentsView.java index cd2cbe723d883..1a32b81c767e7 100644 --- a/packages/SystemUI/src/com/android/systemui/recents/views/RecentsView.java +++ b/packages/SystemUI/src/com/android/systemui/recents/views/RecentsView.java @@ -121,6 +121,17 @@ public class RecentsView extends FrameLayout implements TaskStackView.TaskStackV } } + /** Removes all the task stack views from this recents view. */ + public void removeAllTaskStacks() { + int childCount = getChildCount(); + for (int i = childCount - 1; i >= 0; i--) { + View child = getChildAt(i); + if (child != mSearchBar) { + removeViewAt(i); + } + } + } + /** Launches the focused task from the first stack if possible */ public boolean launchFocusedTask() { // Get the first stack view