Hirdetés

Új hozzászólás Aktív témák

  • thon73
    tag

    Pontosan. Ha onPause-ban bezárom, akkor nem lesz.
    DE:
    onPause után a rendszer bármikor bezárhatja a programot, és akkor az onStop ill. onDestroy nem kerül meghívásra. Ha a zárás az onDestroy-ban van, akkor soha nem kerül meghívásra és bezárásra.

    Ez a helyzet sokkal gyakoribb, mint gondolnánk. Most próbáltam tesztelni: ha home-mal lépek ki a programból, és utána egy csomó minden mást elindítok (ez azért gyakori), akkor az eredeti program figyelmeztetés nélkül bezár ((egyébként a gyakorlatban ez az onStop után következik be, elméletileg már az onPause után is bekövetkezhetne))

    Azt nem tudom, zavarja-e az adatbázist és a cursor-t, ha nyitva marad. Szerintem nem, mert adapterről van szó, tehát csak olvasásról.
    Zavarja-e a rendszert, ha nyitva marad az adatbázis? Mem-leak?
    Vagy ne foglalkozzak az egésszel, mint ahogy a legtöbb példaprogram teszi.

    Egy ideje olvasgatok erről, de sehol nem találtam korrekt módszert a zárásra. Kivéve az onPause-onResume párosát, de annak meg más baja van. (vagyis túl gyakran kerül meghívásra.) Szerintem az egyik legnagyobb hiba az Android tervezésében, hogy az onPause után megengedett a rendszernek az erőltetett kilépés. Mi a nyavajáért nem fejezheti be ilyenkor a dolgát a program!?
    ((A listView esetén sajnos teljes activity-ben kell gondolkodni: amíg a listview látszik, addig az adapter aktív, tehát kell a nyitott cursor és adatbázis is.))

    Még egy apróság: a problémám abból fakad, hogy a dokumentáció kihangsúlyozza, az onPause után az Activity-t a rendszer kilőheti.
    Ezzel szemben többen állítják (és elvileg ez így kell legyen, hiszen az activity csak egy objektum, hogy lehet eltüntetni egy objektumot?), hogy a rendszer Activity-t nem, csak process-t tud kilőni. Márpedig a teljes application egy processben van benne.
    De akkor hogyan lehetséges, hogy az egyszerű példaprogramom újra el tud jutni az onCreate-be, onDestroy nélkül. Kilőtte a rendszer a process-t az egész alkalmazás alól?
    Kételyek között vagyok - nem értem az egészet.És a source-ban is elég nehéz egy ilyen komplex eseményt lenyomozni...

Új hozzászólás Aktív témák