Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/179.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
如何在Android应用程序中从内存中卸载图像_Android_Android Resources_Android Memory - Fatal编程技术网

如何在Android应用程序中从内存中卸载图像

如何在Android应用程序中从内存中卸载图像,android,android-resources,android-memory,Android,Android Resources,Android Memory,在Android应用程序中,(对其他一些问题的回答表明)图像资源在首次使用时加载到内存中,例如,当我调用ImageView.setImageResource(myResId)时 如何强制从内存中卸载图像资源,以控制内存占用 我有一个应用程序,一个活动,上面有一个viewpager:资源中有许多图像,每个视图页面一个图像。图像在创建页面时被加载,我想在用户翻到另一个页面时卸载它。如果用户返回,可以再次加载图像。您不想专门从内存中卸载图像。最好的方法是在处理完对象后调用recycle(),并保留对该

在Android应用程序中,(对其他一些问题的回答表明)图像资源在首次使用时加载到内存中,例如,当我调用
ImageView.setImageResource(myResId)

如何强制从内存中卸载图像资源,以控制内存占用


我有一个应用程序,一个活动,上面有一个viewpager:资源中有许多图像,每个视图页面一个图像。图像在创建页面时被加载,我想在用户翻到另一个页面时卸载它。如果用户返回,可以再次加载图像。

您不想专门从内存中卸载图像。最好的方法是在处理完对象后调用recycle(),并保留对该对象的weakreference。为此,您可以执行以下操作:

ImageView imageView = (ImageView) findViewById(R.id.imageview);
WeakReference<ImageView> imageViewRef = new WeakReference<ImageView>(imageView);
这样,当应用程序需要更多内存时,它可以从内存中删除图像,因为它没有硬引用

imageViewRef.get()