am b8a9cb0e: Fix the activity leak in the Browser.
Merge commit 'b8a9cb0e2b3b2a1bb250853a79b8ea2046ff3d6e' into eclair
* commit 'b8a9cb0e2b3b2a1bb250853a79b8ea2046ff3d6e':
Fix the activity leak in the Browser.
diff --git a/src/com/android/browser/BrowserHistoryPage.java b/src/com/android/browser/BrowserHistoryPage.java
index 6402422..c130a79 100644
--- a/src/com/android/browser/BrowserHistoryPage.java
+++ b/src/com/android/browser/BrowserHistoryPage.java
@@ -140,6 +140,13 @@
}
@Override
+ protected void onDestroy() {
+ super.onDestroy();
+ CombinedBookmarkHistoryActivity.getIconListenerSet(getContentResolver())
+ .removeListener(mIconReceiver);
+ }
+
+ @Override
public boolean onCreateOptionsMenu(Menu menu) {
super.onCreateOptionsMenu(menu);
MenuInflater inflater = getMenuInflater();
diff --git a/src/com/android/browser/CombinedBookmarkHistoryActivity.java b/src/com/android/browser/CombinedBookmarkHistoryActivity.java
index 6090f89..efe6292 100644
--- a/src/com/android/browser/CombinedBookmarkHistoryActivity.java
+++ b/src/com/android/browser/CombinedBookmarkHistoryActivity.java
@@ -68,6 +68,9 @@
public void addListener(IconListener listener) {
mListeners.add(listener);
}
+ public void removeListener(IconListener listener) {
+ mListeners.remove(listener);
+ }
public Bitmap getFavicon(String url) {
return (Bitmap) mUrlsToIcons.get(url);
}
diff --git a/src/com/android/browser/MostVisitedActivity.java b/src/com/android/browser/MostVisitedActivity.java
index 90052d3..65cb89f 100644
--- a/src/com/android/browser/MostVisitedActivity.java
+++ b/src/com/android/browser/MostVisitedActivity.java
@@ -43,12 +43,15 @@
private MyAdapter mAdapter;
+ // Instance of IconReceiver
+ private final IconReceiver mIconReceiver = new IconReceiver();
+
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
mAdapter = new MyAdapter();
CombinedBookmarkHistoryActivity.getIconListenerSet(getContentResolver())
- .addListener(new IconReceiver());
+ .addListener(mIconReceiver);
setListAdapter(mAdapter);
ListView list = getListView();
View v = new ViewStub(this, R.layout.empty_history);
@@ -57,6 +60,13 @@
list.setEmptyView(v);
}
+ @Override
+ protected void onDestroy() {
+ super.onDestroy();
+ CombinedBookmarkHistoryActivity.getIconListenerSet(getContentResolver())
+ .removeListener(mIconReceiver);
+ }
+
private class IconReceiver implements IconListener {
public void onReceivedIcon(String url, Bitmap icon) {
setListAdapter(mAdapter);