diff options
author | Danny Baumann <dannybaumann@web.de> | 2013-04-30 13:06:04 +0200 |
---|---|---|
committer | Danny Baumann <dannybaumann@web.de> | 2013-04-30 13:08:34 +0200 |
commit | 9975780f073b29fbb85b0ee1cd700f1828f783c7 (patch) | |
tree | 6f35b734cc50ed9843b5fb4983d66b3746665e3d /packages/SystemUI/src/com/android/systemui/statusbar/SignalClusterTextView.java | |
parent | c926976008af16ab5e3a0bb532aeeb69565e3429 (diff) | |
download | frameworks_base-9975780f073b29fbb85b0ee1cd700f1828f783c7.zip frameworks_base-9975780f073b29fbb85b0ee1cd700f1828f783c7.tar.gz frameworks_base-9975780f073b29fbb85b0ee1cd700f1828f783c7.tar.bz2 |
Fix SystemUI memory leaks on theme changes.
ContentObserver and BroadcastReceiver instances were dangling after the
status bar was recreated.
Change-Id: I0ef7ef134029e5deec066d405545b8d9ec58d76b
Diffstat (limited to 'packages/SystemUI/src/com/android/systemui/statusbar/SignalClusterTextView.java')
-rw-r--r-- | packages/SystemUI/src/com/android/systemui/statusbar/SignalClusterTextView.java | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/SignalClusterTextView.java b/packages/SystemUI/src/com/android/systemui/statusbar/SignalClusterTextView.java index 8d9dcfd..b4e3572 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/SignalClusterTextView.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/SignalClusterTextView.java @@ -39,7 +39,6 @@ import android.widget.ImageView; import android.widget.LinearLayout; import android.widget.TextView; -import com.android.systemui.statusbar.SignalClusterView.SettingsObserver; import com.android.systemui.statusbar.policy.NetworkController; import com.android.systemui.R; @@ -62,6 +61,7 @@ public class SignalClusterTextView TextView mMobileSignalText; Handler mHandler; + SettingsObserver mObserver; int dBm = 0; @@ -76,6 +76,10 @@ public class SignalClusterTextView Settings.System.STATUS_BAR_SIGNAL_TEXT), false, this); } + void unobserve() { + mContext.getContentResolver().unregisterContentObserver(this); + } + @Override public void onChange(boolean selfChange) { updateSettings(); } @@ -93,9 +97,7 @@ public class SignalClusterTextView super(context, attrs, defStyle); mHandler = new Handler(); - - SettingsObserver settingsObserver = new SettingsObserver(mHandler); - settingsObserver.observe(); + mObserver = new SettingsObserver(mHandler); } @Override @@ -111,6 +113,7 @@ public class SignalClusterTextView mPhoneStateListener, PhoneStateListener.LISTEN_SERVICE_STATE | PhoneStateListener.LISTEN_SIGNAL_STRENGTHS); + mObserver.observe(); updateSettings(); } } @@ -118,6 +121,7 @@ public class SignalClusterTextView @Override protected void onDetachedFromWindow() { if (mAttached) { + mObserver.unobserve(); mAttached = false; } super.onDetachedFromWindow(); |