Removing old Launcher callback reference from LauncherModel when the activity is destroyed.

Change-Id: I288d2bd7e305c2cf9bdeec5357997d566d5205b7
This commit is contained in:
Winson Chung
2011-06-08 16:02:26 -07:00
parent 9578bde6a9
commit cd2b01416f
2 changed files with 13 additions and 5 deletions
+5 -1
View File
@@ -1495,6 +1495,11 @@ public final class Launcher extends Activity
public void onDestroy() {
super.onDestroy();
// Stop callbacks from LauncherModel
LauncherApplication app = ((LauncherApplication) getApplication());
mModel.stopLoader();
app.setLauncher(null);
try {
mAppWidgetHost.stopListening();
} catch (NullPointerException ex) {
@@ -1506,7 +1511,6 @@ public final class Launcher extends Activity
TextKeyListener.getInstance().release();
mModel.stopLoader();
unbindDesktopItems();
+8 -4
View File
@@ -1301,7 +1301,8 @@ public class LauncherModel extends BroadcastReceiver {
final ArrayList<ApplicationInfo> addedFinal = added;
mHandler.post(new Runnable() {
public void run() {
if (callbacks == mCallbacks.get()) {
Callbacks cb = mCallbacks != null ? mCallbacks.get() : null;
if (callbacks == cb && cb != null) {
callbacks.bindAppsAdded(addedFinal);
}
}
@@ -1311,7 +1312,8 @@ public class LauncherModel extends BroadcastReceiver {
final ArrayList<ApplicationInfo> modifiedFinal = modified;
mHandler.post(new Runnable() {
public void run() {
if (callbacks == mCallbacks.get()) {
Callbacks cb = mCallbacks != null ? mCallbacks.get() : null;
if (callbacks == cb && cb != null) {
callbacks.bindAppsUpdated(modifiedFinal);
}
}
@@ -1322,7 +1324,8 @@ public class LauncherModel extends BroadcastReceiver {
final ArrayList<ApplicationInfo> removedFinal = removed;
mHandler.post(new Runnable() {
public void run() {
if (callbacks == mCallbacks.get()) {
Callbacks cb = mCallbacks != null ? mCallbacks.get() : null;
if (callbacks == cb && cb != null) {
callbacks.bindAppsRemoved(removedFinal, permanent);
}
}
@@ -1332,7 +1335,8 @@ public class LauncherModel extends BroadcastReceiver {
mHandler.post(new Runnable() {
@Override
public void run() {
if (callbacks == mCallbacks.get()) {
Callbacks cb = mCallbacks != null ? mCallbacks.get() : null;
if (callbacks == cb && cb != null) {
callbacks.bindPackagesUpdated();
}
}