Fixing issue where defered unbind was running after synchronous bind. (Bug 6858398, Bug 6863181)
Change-Id: I03dc3ae18528901cc88c79638a8495c1ab8d61af
diff --git a/src/com/android/launcher2/LauncherModel.java b/src/com/android/launcher2/LauncherModel.java
index d4b7f76..ab29fc6 100644
--- a/src/com/android/launcher2/LauncherModel.java
+++ b/src/com/android/launcher2/LauncherModel.java
@@ -918,6 +918,11 @@
// data structures, we can't allow any other thread to touch that data, but because
// this call is synchronous, we can get away with not locking).
+ // The LauncherModel is static in the LauncherApplication and mHandler may have queued
+ // operations from the previous activity. We need to ensure that all queued operations
+ // are executed before any synchronous binding work is done.
+ mHandler.flush();
+
// Divide the set of loaded items into those that we are binding synchronously, and
// everything else that is to be bound normally (asynchronously).
bindWorkspace(synchronousBindPage);