Merge "Fix starting window memory leak"
This commit is contained in:
@@ -1523,6 +1523,9 @@ public class PhoneWindowManager implements WindowManagerPolicy {
|
|||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
WindowManager wm = null;
|
||||||
|
View view = null;
|
||||||
|
|
||||||
try {
|
try {
|
||||||
Context context = mContext;
|
Context context = mContext;
|
||||||
if (DEBUG_STARTING_WINDOW) Slog.d(TAG, "addStartingWindow " + packageName
|
if (DEBUG_STARTING_WINDOW) Slog.d(TAG, "addStartingWindow " + packageName
|
||||||
@@ -1582,8 +1585,8 @@ public class PhoneWindowManager implements WindowManagerPolicy {
|
|||||||
params.privateFlags |= WindowManager.LayoutParams.PRIVATE_FLAG_SHOW_FOR_ALL_USERS;
|
params.privateFlags |= WindowManager.LayoutParams.PRIVATE_FLAG_SHOW_FOR_ALL_USERS;
|
||||||
params.setTitle("Starting " + packageName);
|
params.setTitle("Starting " + packageName);
|
||||||
|
|
||||||
WindowManager wm = (WindowManager)context.getSystemService(Context.WINDOW_SERVICE);
|
wm = (WindowManager)context.getSystemService(Context.WINDOW_SERVICE);
|
||||||
View view = win.getDecorView();
|
view = win.getDecorView();
|
||||||
|
|
||||||
if (win.isFloating()) {
|
if (win.isFloating()) {
|
||||||
// Whoops, there is no way to display an animation/preview
|
// Whoops, there is no way to display an animation/preview
|
||||||
@@ -1613,6 +1616,11 @@ public class PhoneWindowManager implements WindowManagerPolicy {
|
|||||||
// failure loading resources because we are loading from an app
|
// failure loading resources because we are loading from an app
|
||||||
// on external storage that has been unmounted.
|
// on external storage that has been unmounted.
|
||||||
Log.w(TAG, appToken + " failed creating starting window", e);
|
Log.w(TAG, appToken + " failed creating starting window", e);
|
||||||
|
} finally {
|
||||||
|
if (view != null && view.getParent() == null) {
|
||||||
|
Log.w(TAG, "view not successfully added to wm, removing view");
|
||||||
|
wm.removeViewImmediate(view);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return null;
|
return null;
|
||||||
|
|||||||
Reference in New Issue
Block a user