From 4bf1704650e6849f977259d765fd1167a97531d8 Mon Sep 17 00:00:00 2001 From: "yifan.bai" Date: Tue, 17 May 2016 17:41:19 +0800 Subject: [PATCH] Fix register multiple PhoneStateListeners. To avoid multiple PhoneStateListeners are registered, when user changes the tab between SIMs, unregister the previous listener. Change-Id: I99cf36a2c25bfbb74322b55efc6d751ea96810e5 --- src/com/android/settings/deviceinfo/SimStatus.java | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/com/android/settings/deviceinfo/SimStatus.java b/src/com/android/settings/deviceinfo/SimStatus.java index 83043c7a4d7..2a5371913ce 100644 --- a/src/com/android/settings/deviceinfo/SimStatus.java +++ b/src/com/android/settings/deviceinfo/SimStatus.java @@ -389,6 +389,12 @@ public class SimStatus extends InstrumentedPreferenceActivity { } mPhone = phone; + // To avoid register multiple listeners when user changes the tab. + if (mPhoneStateListener != null && mTelephonyManager != null) { + mTelephonyManager.listen(mPhoneStateListener, + PhoneStateListener.LISTEN_NONE); + mPhoneStateListener = null; + } mPhoneStateListener = new PhoneStateListener(mSir.getSubscriptionId()) { @Override public void onDataConnectionStateChanged(int state) {