Hirdetés
- Apple Watch
- Bemutatkozott a Poco X7 és X7 Pro
- CES 2026: Aláírjuk a Motorola Signature mutatós külsejét
- Samsung Galaxy A52s 5G - jó S-tehetség
- Realme GT 2 Pro - papírforma
- Telekom mobilszolgáltatások
- Google Pixel topik
- Szívós, szép és kitartó az új OnePlus óra
- Android alkalmazások - szoftver kibeszélő topik
- Formát és önbizalmat épít a Garmin golfórája
Ú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
- ÚJ HP HyperX Cloud II Bolti ár:40k INGYEN FOXPOST
- MSI P4MAM2-V Retro félkonfig, 1 GB DDR RAM, Pentium 4 2,8 GHz CPU, Windows XP
- Creative Sound Blaster 16 (CT2230) Retro ISA hangkártya
- ÚJ HP HyperX Cloud Alpha Bolti ár:30k INGYEN FOXPOST
- Garanciális FiiO SR11 Roon és Airplay bridge / hálózati lejátszó / streamer
- BESZÁMÍTÁS! Apple iPad Air 5 10.9 256GB WiFi tablet extrákkal garanciával hibátlan működéssel
- ÁRGARANCIA!Épített KomPhone Ryzen 5 7500F 32/64GB DDR5 RTX 5060 8GB GAMER PC termékbeszámítással
- HIBÁTLAN iPhone 13 Pro Max 256GB Gold -1 ÉV GARANCIA - Kártyafüggetlen, MS3685
- Bomba ár! Lenovo ThinkPad X390: i5-G8 I 16GB I 256SSD I 13,3" FHD Touch I HDMI I Cam I W11 I Gar
- Új és újszerű 15-16 Gamer, irodai, üzleti, készülékek nagyon kedvező alkalmi áron Garanciával!
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest


