Hirdetés
- Android szakmai topik
- Karácsonykor nyerte meg a Honor az üzemidőcsatát
- Apple iPhone 16 Pro - rutinvizsga
- Jövő héten mutatkozik be a OnePlus új szériája
- Kezünkben a OnePlus 15 és az Oppo Find X9-ek
- Szívós, szép és kitartó az új OnePlus óra
- Samsung Galaxy S24 - nos, Exynos
- Ezt az öt videót volt a legjobb megcsinálni idén
- Magisk
- Az 5 legnagyobb bénázás a mobilpiacon idén
Ú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
- Amlogic S905, S912 processzoros készülékek
- Android szakmai topik
- Feltörték a regisztrációmat vagy elvesztettem a belépési emailcímet, 2FA-t
- Okos Otthon / Smart Home
- Steam topic
- Lakáshitel, lakásvásárlás
- Karácsonykor nyerte meg a Honor az üzemidőcsatát
- HiFi műszaki szemmel - sztereó hangrendszerek
- Apple iPhone 16 Pro - rutinvizsga
- Xbox Classic / Xbox 360
- További aktív témák...
- Bomba ár! Dell Latitude E6530 - i5-3210M/i5-3230M I 4GB I 320GB I 15,6" I HDMI I Garancia!
- ÁRGARANCIA!Épített KomPhone Ryzen 9 5900X 16/32/64GB RAM RTX 5070 12GB GAMER PC termékbeszámítással
- Xiaomi Redmi Note 10s 128GB, Kártyafüggetlen, 1 Év Garanciával
- iPhone 12 Pro 256GB Gold -1 ÉV GARANCIA - Kártyafüggetlen, MS3581
- ÁRGARANCIA!Épített KomPhone Ryzen 7 9800X3D 32/64GB RAM RTX 5070Ti 16GB GAMER PC termékbeszámítással
Állásajánlatok
Cég: Laptopszaki Kft.
Város: Budapest
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest


