Merge "Move receiver registration to onPause/onResume for MobileNetworkSettings." am: b9ff877760
am: b2b54f973f
Change-Id: Ic2fe9e9c3d2c2e1a8b292eb1a68c0419cd15a691
diff --git a/src/com/android/phone/MobileNetworkSettings.java b/src/com/android/phone/MobileNetworkSettings.java
index 691d9ff..6a26f76 100644
--- a/src/com/android/phone/MobileNetworkSettings.java
+++ b/src/com/android/phone/MobileNetworkSettings.java
@@ -788,13 +788,6 @@
int max = mSubscriptionManager.getActiveSubscriptionInfoCountMax();
mActiveSubInfos = new ArrayList<SubscriptionInfo>(max);
- IntentFilter intentFilter = new IntentFilter(
- TelephonyIntents.ACTION_RADIO_TECHNOLOGY_CHANGED);
- activity.registerReceiver(mPhoneChangeReceiver, intentFilter);
-
- activity.getContentResolver().registerContentObserver(ENFORCE_MANAGED_URI, false,
- mDpcEnforcedContentObserver);
-
Log.i(LOG_TAG, "onCreate:-");
}
@@ -822,6 +815,10 @@
@Override
public void onReceive(Context context, Intent intent) {
Log.i(LOG_TAG, "onReceive:");
+ if (getActivity() == null || getContext() == null) {
+ // Received broadcast and activity is in the process of being torn down.
+ return;
+ }
// When the radio changes (ex: CDMA->GSM), refresh all options.
updateBody();
}
@@ -835,6 +832,10 @@
@Override
public void onChange(boolean selfChange) {
Log.i(LOG_TAG, "DPC enforced onChange:");
+ if (getActivity() == null || getContext() == null) {
+ // Received content change and activity is in the process of being torn down.
+ return;
+ }
updateBody();
}
}
@@ -843,11 +844,6 @@
public void onDestroy() {
unbindNetworkQueryService();
super.onDestroy();
- if (getActivity() != null) {
- getActivity().unregisterReceiver(mPhoneChangeReceiver);
- getActivity().getContentResolver().unregisterContentObserver(
- mDpcEnforcedContentObserver);
- }
}
@Override
@@ -884,6 +880,13 @@
mSubscriptionManager.addOnSubscriptionsChangedListener(mOnSubscriptionsChangeListener);
+ final Context context = getActivity();
+ IntentFilter intentFilter = new IntentFilter(
+ TelephonyIntents.ACTION_RADIO_TECHNOLOGY_CHANGED);
+ context.registerReceiver(mPhoneChangeReceiver, intentFilter);
+ context.getContentResolver().registerContentObserver(ENFORCE_MANAGED_URI, false,
+ mDpcEnforcedContentObserver);
+
Log.i(LOG_TAG, "onResume:-");
}
@@ -1220,6 +1223,10 @@
mSubscriptionManager
.removeOnSubscriptionsChangedListener(mOnSubscriptionsChangeListener);
+
+ final Context context = getActivity();
+ context.unregisterReceiver(mPhoneChangeReceiver);
+ context.getContentResolver().unregisterContentObserver(mDpcEnforcedContentObserver);
if (DBG) log("onPause:-");
}