【问题标题】:How to unload images from memory in an Android app如何在 Android 应用程序中从内存中卸载图像
【发布时间】:2012-12-24 21:07:04
【问题描述】:

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

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

我有一个应用程序,一个带有 viewpager 的活动:资源中有许多图像,每个视图页面一个图像。创建页面时加载图像,我想在用户翻转到另一个页面时将其卸载。如果用户回来,图像可以重新加载。

【问题讨论】:

    标签: android android-resources android-memory


    【解决方案1】:

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

    ImageView imageView = (ImageView) findViewById(R.id.imageview);
    WeakReference<ImageView> imageViewRef = new WeakReference<ImageView>(imageView);
    

    只要你想访问图像,你可以使用:

    imageViewRef.get()
    

    这样,当应用程序需要更多内存时,它可以从内存中删除图像,因为它没有硬引用。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-04-30
      • 1970-01-01
      • 2019-08-15
      • 1970-01-01
      • 2012-06-15
      • 1970-01-01
      • 2011-10-10
      相关资源
      最近更新 更多