Fix Phone crash when rorate screen on SimStatus.
When rorate screen on SimStatus, Fragment not attached to Activity, phone crash. Solution: use mRes to getString Test: build 07-07 13:20:27.237 696 696 E AndroidRuntime: Process: com.android.phone, PID: 696 07-07 13:20:27.237 696 696 E AndroidRuntime: java.lang.IllegalStateException: Fragment SimStatus{d1e4bb3} not attached to Activity 07-07 13:20:27.237 696 696 E AndroidRuntime: at android.app.Fragment.getResources(Fragment.java:861) 07-07 13:20:27.237 696 696 E AndroidRuntime: at com.android.settings.deviceinfo.SimStatus.updateSignalStrength(SimStatus.java:359) 07-07 13:20:27.237 696 696 E AndroidRuntime: at com.android.settings.deviceinfo.SimStatus$4.onSignalStrengthsChanged(SimStatus.java:444) 07-07 13:20:27.237 696 696 E AndroidRuntime: at android.telephony.PhoneStateListener$1.handleMessage(PhoneStateListener.java:334) 07-07 13:20:27.237 696 696 E AndroidRuntime: at android.os.Handler.dispatchMessage(Handler.java:105) 07-07 13:20:27.237 696 696 E AndroidRuntime: at android.os.Looper.loop(Looper.java:164) 07-07 13:20:27.237 696 696 E AndroidRuntime: at android.app.ActivityThread.main(ActivityThread.java:6558) 07-07 13:20:27.237 696 696 E AndroidRuntime: at java.lang.reflect.Method.invoke(Native Method) 07-07 13:20:27.237 696 696 E AndroidRuntime: at com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygot Change-Id: Ife8f2e3ed8c4fe6db0fe784a43910768ff3ff4d1
This commit is contained in:
@@ -357,7 +357,6 @@ public class SimStatus extends SettingsPreferenceFragment {
|
||||
void updateSignalStrength(SignalStrength signalStrength) {
|
||||
if (mSignalStrength != null) {
|
||||
final int state = mPhone.getServiceState().getState();
|
||||
Resources r = getResources();
|
||||
|
||||
if ((ServiceState.STATE_OUT_OF_SERVICE == state) ||
|
||||
(ServiceState.STATE_POWER_OFF == state)) {
|
||||
@@ -376,7 +375,7 @@ public class SimStatus extends SettingsPreferenceFragment {
|
||||
signalAsu = 0;
|
||||
}
|
||||
|
||||
mSignalStrength.setSummary(r.getString(R.string.sim_signal_strength,
|
||||
mSignalStrength.setSummary(mRes.getString(R.string.sim_signal_strength,
|
||||
signalDbm, signalAsu));
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user