如何在Android应用程序中从内存中卸载图像
在Android应用程序中,(对其他一些问题的回答表明)图像资源在首次使用时加载到内存中,例如,当我调用如何在Android应用程序中从内存中卸载图像,android,android-resources,android-memory,Android,Android Resources,Android Memory,在Android应用程序中,(对其他一些问题的回答表明)图像资源在首次使用时加载到内存中,例如,当我调用ImageView.setImageResource(myResId)时 如何强制从内存中卸载图像资源,以控制内存占用 我有一个应用程序,一个活动,上面有一个viewpager:资源中有许多图像,每个视图页面一个图像。图像在创建页面时被加载,我想在用户翻到另一个页面时卸载它。如果用户返回,可以再次加载图像。您不想专门从内存中卸载图像。最好的方法是在处理完对象后调用recycle(),并保留对该
ImageView.setImageResource(myResId)
时
如何强制从内存中卸载图像资源,以控制内存占用
我有一个应用程序,一个活动,上面有一个viewpager:资源中有许多图像,每个视图页面一个图像。图像在创建页面时被加载,我想在用户翻到另一个页面时卸载它。如果用户返回,可以再次加载图像。您不想专门从内存中卸载图像。最好的方法是在处理完对象后调用recycle(),并保留对该对象的weakreference。为此,您可以执行以下操作:
ImageView imageView = (ImageView) findViewById(R.id.imageview);
WeakReference<ImageView> imageViewRef = new WeakReference<ImageView>(imageView);
这样,当应用程序需要更多内存时,它可以从内存中删除图像,因为它没有硬引用
imageViewRef.get()