- Milyen monitort vegyek?
- AMD K6-III, és minden ami RETRO - Oldschool tuning
- OLED TV topic
- Áramkiegyenlítőt fejlesztett a modern GeForce-okhoz az Aqua Computer
- Melyik tápegységet vegyem?
- Az elmúlt 30 év legjobb processzorai
- Vezeték nélküli fejhallgatók
- Azonnali informatikai kérdések órája
- Kompakt vízhűtés
- Vezetékes FEJhallgatók
Új hozzászólás Aktív témák
-
Karma
félisten
válasz
lordjancso
#1221
üzenetére
Semmi nagy dologra nem gondoltam, két dolgot változtatnék a példán a rend kedvéért:
1) Ahogy nézem, nem használja fel az URLImageGetter a konstruktorban átadott Contextet, úgyhogy a tagváltozót és a paramétert törölném azonnal. Ha meg mégis kéne, akkor a View-tól kérném el.
2) A container tagváltozója ugyanennek az osztálynak erősen kapaszkodik (hard reference) a View-ba, úgyhogy ha mondjuk a letöltés tíz percig tart, a felhasználó már régen továbbállt mert megunta, akkor se tudja a GC felszabadítani az egész Activityt.
Könnyen elkerülhető, ha a container tagváltozó nem View, hanem WeakReference<View> típusú. Két sort kell módosítani hozzá, és máris nem akadályozza a GC-t – csak le kell ellenőrizni onPostExecute-ban, hogy megvan-e még a View, vagy már vége.public class URLImageParser implements ImageGetter {
WeakReference<View> container;
public URLImageParser(View t) {
this.container = new WeakReference<View>(t);
}
public class ImageGetterAsyncTask extends AsyncTask<String, Void, Drawable> {
URLDrawable urlDrawable;
...
@Override
protected void onPostExecute(Drawable result) {
View c = URLImageParser.this.container.get();
if (c == null) return;
...
// redraw the image by invalidating the container
c.invalidate();
}
...
}
}[ Módosította: doc ]
Új hozzászólás Aktív témák
- EAFC 26
- Elemlámpa, zseblámpa
- Nintendo Switch 2
- eMAG vélemények - tapasztalatok
- Arc Raiders
- Százmilliárd dolláros AI-fegyverkezésbe kezdett az Amazon és a Google
- Allegro vélemények - tapasztalatok
- Milyen monitort vegyek?
- Elektromos autók - motorok
- AMD K6-III, és minden ami RETRO - Oldschool tuning
- További aktív témák...
- Eladó 6 darab DDR4 16 Gb Sodimm, illetve 2 darab DDR5 16 GB Sodimm
- Eladó három darab SSD. 2 x 1 TB illetve 1 x 2 TB
- több db DELL P2419 vékony kávás full HD 1920x1080 IPS monitor HDMI - gari + számla
- iPhone 17 256 GB Párakék - Bontatlan - 1 év gyári Apple garancia, Hivatalos Apple Resellertől!
- iPhone 17 512 GB Párakék - Bontatlan - 1 év gyári Apple garancia, Hivatalos Apple Resellertől!
Állásajánlatok
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest
Cég: Central PC számítógép és laptop szerviz - Pécs
Város: Pécs


