- Milyen okostelefont vegyek?
- iPhone topik
- iPhone Ultra néven jöhet az Apple első foldja, nem lesz olcsó mulatság
- Xiaomi 15T Pro - a téma nincs lezárva
- Honor 200 Pro - mobilportré
- Xiaomi 13 Pro - szerencsés szám
- Samsung Galaxy Watch5 Pro - kerek, de nem tekerek
- Akciófigyelő: 25 000 forintos ajándék jár a Xiaomi Pad 8 tabletek mellé
- Samsung Galaxy A36 5G - a középső testvér
- Fotók, videók mobillal
Ú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
- Milyen okostelefont vegyek?
- Elektromos (hálózati és akkus) kéziszerszámok, tapasztalatok/vásárlás
- iPhone topik
- Samsung kuponkunyeráló
- LEGO klub
- Kutya topik
- Amit látnod kell 80’ – 90’ évek, egész estét betöltő mozi filmjei.
- iPhone Ultra néven jöhet az Apple első foldja, nem lesz olcsó mulatság
- Hyundai, Kia topik
- Ilyen olcsó sem volt még egy Apple notebook
- További aktív témák...
- Új Mac Studio M4 Max 2025 14C CPU /32C GPU / 36GB RAM / 512GB - 1 ÉV APPLE GARANCIA
- 2026 MacBook Air / MacBook Pro / M5 - M5 Pro - M5 MAX 14" / 16"
- Asus 15.6,core i3 8145U(4x3,9Ghz)IntelUHD VGA,MAGYAR Vil.bill.,8-20GB RAM,SSD+HDD?,,Win.11
- LG UltraGear 27GS85Q-B NanoIPS/2K/200HZ (068)
- Üzletből, garanciával, Dell Precision 7550 i7-11850H/32GBRAM/512GBSSD/NVIDIA T12000/15,6" FULLHD IPS
- szinteÚJ Dell 15 i7 1355U 32GB 1TB 120Hz!!!!!!
- Playstation 4 FAT 1 TB kontroller 6 hó garancia, számlával!
- iPhone 14 256GB Midnight -1 ÉV GARANCIA - Kártyafüggetlen, MS4422
- Előbb mint bárhol máshol !! Motorola Moto G77 8GB/256GB - 1 év garancia
- GYÖNYÖRŰ iPhone 11 Pro 64GB Silver -1 ÉV GARANCIA - Kártyafüggetlen, MS3565
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest


