diff --git a/src/com/android/settings/deviceinfo/SimStatus.java b/src/com/android/settings/deviceinfo/SimStatus.java index 0acad37bf95..47dd35d3590 100644 --- a/src/com/android/settings/deviceinfo/SimStatus.java +++ b/src/com/android/settings/deviceinfo/SimStatus.java @@ -403,6 +403,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) {