diff options
author | jshe32X <jianchunx.shen@intel.com> | 2013-10-24 12:57:09 +0800 |
---|---|---|
committer | Guobin Zhang <guobin.zhang@intel.com> | 2014-03-14 08:09:49 +0800 |
commit | 7670b2bd49915509dac72c98f2b6a2c1172c52bf (patch) | |
tree | e7f4cb5e7075900d5d80e93e3ef2e993efb61a34 /packages/SystemUI/src | |
parent | 792f38ddd9e8d25b2c8bf0d67363dbfa56550636 (diff) | |
download | frameworks_base-7670b2bd49915509dac72c98f2b6a2c1172c52bf.zip frameworks_base-7670b2bd49915509dac72c98f2b6a2c1172c52bf.tar.gz frameworks_base-7670b2bd49915509dac72c98f2b6a2c1172c52bf.tar.bz2 |
NULL previous background bitmap upon changing wallpaper
Step to reproduce it on Nexus 10 with 4.4.2(KOT49H):
1. Long press on home screen.
2. Choose wallpaper from Wallpapers.
3. Select new wallpaper and set it.
4. Repeat step 1-3 several times.
See black background instead of the wallpaper.
There are two binder objects who hold reference to the
ImageWallpaper$DrawableEngine, which keeps the big chunk
bitmap from being recycled.
One is WallpaperService$IWallpaperEngineWrapper. The client
references went away slowly, maybe several minutes after
changing wallpaper. Then the finalizer has to been executed
to GC it.
The other one is WallpaperService$Engine$BaseIWindow. Don't
know who still held reference to it even after the window
was removed.
Anyway, let the bitmap be GCed first.
Change-Id: I27f6971a3edd26472b69e59b542b27fd7c8e7b90
Signed-off-by: jshe32X<jianchunx.shen@intel.com>
Signed-off-by: Guobin Zhang <guobin.zhang@intel.com>
Diffstat (limited to 'packages/SystemUI/src')
-rw-r--r-- | packages/SystemUI/src/com/android/systemui/ImageWallpaper.java | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/packages/SystemUI/src/com/android/systemui/ImageWallpaper.java b/packages/SystemUI/src/com/android/systemui/ImageWallpaper.java index 4b0c2cb..d940406 100644 --- a/packages/SystemUI/src/com/android/systemui/ImageWallpaper.java +++ b/packages/SystemUI/src/com/android/systemui/ImageWallpaper.java @@ -202,6 +202,7 @@ public class ImageWallpaper extends WallpaperService { if (mReceiver != null) { unregisterReceiver(mReceiver); } + mBackground = null; } @Override |