Merge "Fix leak when keylock is recreated."

This commit is contained in:
Dianne Hackborn
2011-02-28 17:54:54 -08:00
committed by Android Code Review

View File

@@ -163,6 +163,12 @@ public class LockPatternKeyguardView extends KeyguardViewBase {
*/ */
private Configuration mConfiguration; private Configuration mConfiguration;
private Runnable mRecreateRunnable = new Runnable() {
public void run() {
recreateScreens();
}
};
/** /**
* @return Whether we are stuck on the lock screen because the sim is * @return Whether we are stuck on the lock screen because the sim is
* missing. * missing.
@@ -244,7 +250,8 @@ public class LockPatternKeyguardView extends KeyguardViewBase {
public void recreateMe(Configuration config) { public void recreateMe(Configuration config) {
mConfiguration = config; mConfiguration = config;
recreateScreens(); removeCallbacks(mRecreateRunnable);
post(mRecreateRunnable);
} }
public void takeEmergencyCallAction() { public void takeEmergencyCallAction() {
@@ -462,6 +469,12 @@ public class LockPatternKeyguardView extends KeyguardViewBase {
updateScreen(mMode); updateScreen(mMode);
} }
@Override
protected void onDetachedFromWindow() {
removeCallbacks(mRecreateRunnable);
super.onDetachedFromWindow();
}
@Override @Override
public void wakeWhenReadyTq(int keyCode) { public void wakeWhenReadyTq(int keyCode) {
if (DEBUG) Log.d(TAG, "onWakeKey"); if (DEBUG) Log.d(TAG, "onWakeKey");