简体   繁体   English

如何注销 CarouselView 的 Image Listener 以避免内存泄漏

[英]How to unregister the Image Listener of the CarouselView to avoid Memory Leak

In an Android application,在 Android 应用程序中,

How to unregister the Image Listener of the CarouselView to avoid Memory Leak:如何注销 CarouselView 的 Image Listener 以避免内存泄漏:
CarouselView轮播视图

Some part of the code:部分代码:
The following code is the class to define the Image Listener of the carouselview下面的代码是定义carouselview的Image Listener的类

 public class CarouselView_ImageListeners_Configuration_NewPage
    {
        final int[] sampleImages = {R.drawable.a1, R.drawable.koalasplash2,R.drawable.logo1,R.drawable.logo2};
        Context mContext;
        int ImageScaleType = 0;

        public void SetContext(Context mContext)
        {
            this.mContext = mContext;
        }

        public void SetImageScaleType(int ImageScaleType)
        {
            this.ImageScaleType = ImageScaleType;
        }

        public ImageListener imageListener_ScaleType = new ImageListener() {
            @Override
            public void setImageForPosition(int position, ImageView imageView) {

                Log.e("JFT", "QWEQQQ 1 =  "+ ImageScaleType );
                switch (ImageScaleType)
                {
                    case 0:
                        imageView.setScaleType(ImageView.ScaleType.CENTER_CROP);
                        break;
                    case 1:
                        imageView.setScaleType(ImageView.ScaleType.CENTER_INSIDE);
                    case 2:
                        imageView.setScaleType(ImageView.ScaleType.CENTER);
                        break;
                    case 3:
                        imageView.setScaleType(ImageView.ScaleType.FIT_CENTER);
                        break;
                    case 4:
                        imageView.setScaleType(ImageView.ScaleType.FIT_XY);
                        break;
                }
                Glide.with(mContext).load(sampleImages[position]).into(imageView);
                //Picasso.with(mContext).load(sampleImages[position]).into(imageView);
            }
        };
    }

And:和:
In this part of the code I sent the context在这部分代码中,我发送了上下文

 final CarouselView_ImageListeners_Configuration_NewPage mBuild_M4_Configurations_NewPage_ImageListeners = new CarouselView_ImageListeners_Configuration_NewPage();
    mBuild_M4_Configurations_NewPage_ImageListeners.SetContext(mContext);

And:和:

mLayoutStruct.getLayout_carouselView().setImageListener(mBuild_M4_Configurations_NewPage_ImageListeners.imageListener_ScaleType);

The problem was timer in CarouselView,问题是 CarouselView 中的计时器,
I set the interval to 0 then the leak is vanished我将间隔设置为 0 然后泄漏消失了

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM