Új hozzászólás Aktív témák
-
Karma
félisten
válasz RexpecT #1297 üzenetére
Az okozza a félreértést, hogy tettél egy alaptalan feltételezést, ami egyébként elég súlyos is lehet különösen rendszererőforrásokkal kapcsolatban: "az osztály amely implementálja ugye nem adja át a saját interfész referenciáját".
Hogyne tenné? Konkrétan a LocationManagernek kell átadni az interfész referenciát az utolsó paraméterben. Ha megnézed a metódus forrását, az is látszik, ahogy egy HashMapben eltárolja a listenerre mutató hard referenciát. Gyakorlatilag ugyanaz, mint az A-B-C-s példakódod. És ez veszélyes, mert ha nem szünteted meg a regisztrációt, akár Activityk is maradhatnak beragadva a memóriában.
Java alatt "semmi se történik ok nélkül", nincsenek a levegőben röpködő és villámszerűen az objektumaid póznájába becsapódó események (mint lehetne pl. egy JVM szintű publish-subscribe rendszer). Valahol biztosan regisztrálnod kell magad egy konkrét objektumnál.
[ Szerkesztve ]
“All nothings are not equal.”