Как отменить регистрацию Image Listener в CarouselView, чтобы избежать утечки памяти - PullRequest
0 голосов
/ 18 января 2020

В приложении Android,

Как отменить регистрацию прослушивателя изображений CarouselView, чтобы избежать утечки памяти:
CarouselView

Некоторая часть code:
Следующий код является классом для определения слушателя изображения карусели

 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);
            }
        };
    }

И:
В этой части кода я отправил контекст

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

А:

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

1 Ответ

0 голосов
/ 21 января 2020

Проблема была в таймере в CarouselView,
Я установил интервал на 0, после чего утечка исчезла

...