Loading services/java/com/android/server/am/ActivityManagerService.java +3 −1 Original line number Diff line number Diff line Loading @@ -3193,6 +3193,7 @@ public final class ActivityManagerService extends ActivityManagerNative if (task.userId == tr.userId && ((task.affinity != null && task.affinity.equals(tr.affinity)) || (task.intent != null && task.intent.filterEquals(tr.intent)))) { tr.disposeThumbnail(); mRecentTasks.remove(i); i--; N--; Loading @@ -3204,7 +3205,7 @@ public final class ActivityManagerService extends ActivityManagerNative } } if (N >= MAX_RECENT_TASKS) { mRecentTasks.remove(N-1); mRecentTasks.remove(N-1).disposeThumbnail(); } mRecentTasks.add(0, task); } Loading Loading @@ -6738,6 +6739,7 @@ public final class ActivityManagerService extends ActivityManagerNative } private void cleanUpRemovedTaskLocked(TaskRecord tr, int flags) { tr.disposeThumbnail(); mRecentTasks.remove(tr); mStackSupervisor.removeTask(tr); final boolean killProcesses = (flags&ActivityManager.REMOVE_TASK_KILL_PROCESS) != 0; Loading services/java/com/android/server/am/TaskRecord.java +10 −0 Original line number Diff line number Diff line Loading @@ -128,6 +128,16 @@ final class TaskRecord extends ThumbnailHolder { } } void disposeThumbnail() { super.disposeThumbnail(); for (int i=mActivities.size()-1; i>=0; i--) { ThumbnailHolder thumb = mActivities.get(i).thumbHolder; if (thumb != this) { thumb.disposeThumbnail(); } } } ActivityRecord getTopActivity() { for (int i = mActivities.size() - 1; i >= 0; --i) { final ActivityRecord r = mActivities.get(i); Loading services/java/com/android/server/am/ThumbnailHolder.java +5 −0 Original line number Diff line number Diff line Loading @@ -21,4 +21,9 @@ import android.graphics.Bitmap; public class ThumbnailHolder { Bitmap lastThumbnail; // Last thumbnail captured for this item. CharSequence lastDescription; // Last description captured for this item. void disposeThumbnail() { lastThumbnail = null; lastDescription = null; } } Loading
services/java/com/android/server/am/ActivityManagerService.java +3 −1 Original line number Diff line number Diff line Loading @@ -3193,6 +3193,7 @@ public final class ActivityManagerService extends ActivityManagerNative if (task.userId == tr.userId && ((task.affinity != null && task.affinity.equals(tr.affinity)) || (task.intent != null && task.intent.filterEquals(tr.intent)))) { tr.disposeThumbnail(); mRecentTasks.remove(i); i--; N--; Loading @@ -3204,7 +3205,7 @@ public final class ActivityManagerService extends ActivityManagerNative } } if (N >= MAX_RECENT_TASKS) { mRecentTasks.remove(N-1); mRecentTasks.remove(N-1).disposeThumbnail(); } mRecentTasks.add(0, task); } Loading Loading @@ -6738,6 +6739,7 @@ public final class ActivityManagerService extends ActivityManagerNative } private void cleanUpRemovedTaskLocked(TaskRecord tr, int flags) { tr.disposeThumbnail(); mRecentTasks.remove(tr); mStackSupervisor.removeTask(tr); final boolean killProcesses = (flags&ActivityManager.REMOVE_TASK_KILL_PROCESS) != 0; Loading
services/java/com/android/server/am/TaskRecord.java +10 −0 Original line number Diff line number Diff line Loading @@ -128,6 +128,16 @@ final class TaskRecord extends ThumbnailHolder { } } void disposeThumbnail() { super.disposeThumbnail(); for (int i=mActivities.size()-1; i>=0; i--) { ThumbnailHolder thumb = mActivities.get(i).thumbHolder; if (thumb != this) { thumb.disposeThumbnail(); } } } ActivityRecord getTopActivity() { for (int i = mActivities.size() - 1; i >= 0; --i) { final ActivityRecord r = mActivities.get(i); Loading
services/java/com/android/server/am/ThumbnailHolder.java +5 −0 Original line number Diff line number Diff line Loading @@ -21,4 +21,9 @@ import android.graphics.Bitmap; public class ThumbnailHolder { Bitmap lastThumbnail; // Last thumbnail captured for this item. CharSequence lastDescription; // Last description captured for this item. void disposeThumbnail() { lastThumbnail = null; lastDescription = null; } }