Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/362.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/206.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Android从drawable中释放内存_Java_Android_Android Bitmap - Fatal编程技术网

Java Android从drawable中释放内存

Java Android从drawable中释放内存,java,android,android-bitmap,Java,Android,Android Bitmap,因此,我正在使用一项服务,在某个时候,我需要运行以下程序: Bitmap wallpaperBitmap = ((BitmapDrawable) WallpaperManager .getInstance(getApplicationContext()).getDrawable()).getBitmap(); 然后将此位图设置为背景视图,我使用它将其保留在我的服务中 View.setBackground(new BitmapDra

因此,我正在使用一项服务,在某个时候,我需要运行以下程序:

Bitmap wallpaperBitmap = ((BitmapDrawable) WallpaperManager
                                .getInstance(getApplicationContext()).getDrawable()).getBitmap();
然后将此位图设置为背景视图,我使用它将其保留在我的服务中

View.setBackground(new BitmapDrawable(res, wallpaperBitmap));
问题是,只要我从
wallpermanager
中获取可绘制文件,我的服务的RAM使用率就会上升,因为
wallperbitmap
保存在内存中。或者,
wallpermanager
返回的drawable可能就是保存在内存中的那个(我不太确定)。如何从这个背景中释放内存


需要注意的是:我确实在一段时间后将视图的背景更改为颜色,位图不再显示为背景,但RAM永远不会被释放。我还尝试了'wallpaperBitmap.recycle()`但是内存仍然没有被清除。如何从壁纸管理器中释放内存?

您可以执行位图.recycle()。它释放与位图关联的对象并清除对像素数据的引用,从而允许对其进行抓取收集。

您可以尝试此操作。它将立即释放内存

bitmap.recycle();
bitmap = null;

是的,我正在这么做。忘了提了。仍然没有清除momory。您也可以使用第三方库,如Picasso()和Universal Image Loader()高效地加载图像。谢谢,但实际上不会。我试过了,但没用。我认为问题在于
WallpapaperManager.getDrawable()