GrenderG/Toasty

Memory leak when allowQueue=false

Open

#128 aperta il 12 nov 2019

Vedi su GitHub
 (3 commenti) (0 reazioni) (0 assegnatari)Java (822 fork)batch import
bughelp wanted

Metriche repository

Star
 (6535 star)
Metriche merge PR
 (Nessuna PR mergiata in 30 g)

Descrizione

If allowQueue parameter set to false Toasty uses lastToast static variable to save previous Toast object which holds reference to Context causing memory leak. Leak is reported by com.squareup.leakcanary library.

You need to set allowQueue to true to eliminate leak (no static reference to Context).

// Causing leak
            Toasty.custom(_context, _text,
                    ContextCompat.getDrawable(_context, R.drawable.ic_alert_white_36dp),
                    ContextCompat.getColor(_context, R.color.warn_background),
                    ContextCompat.getColor(_context, R.color.defaultTextColor),
                    _duration, true, true).show();

// No leak
Toasty.Config.getInstance().allowQueue(true).apply();
Toasty.custom(_context, _text,
                    ContextCompat.getDrawable(_context, R.drawable.ic_alert_white_36dp),
                    ContextCompat.getColor(_context, R.color.warn_background),
                    ContextCompat.getColor(_context, R.color.defaultTextColor),
                    _duration, true, true).show();

Guida contributor