Hirdetés
- Sokkal jobb ajánlat lett elődjénél az iPhone 17e
- Samsung Galaxy S23 és S23+ - ami belül van, az számít igazán
- MWC 2026: Na, fussunk vele még egy kört!
- Samsung Galaxy A54 - türelemjáték
- Redmi Note 13 Pro 5G - nem százas, kétszázas!
- MWC 2026: Bajnoki címre pályázik a Xiaomi Watch 5
- Samsung Galaxy Watch5 Pro - kerek, de nem tekerek
- Szívós, szép és kitartó az új OnePlus óra
- Xiaomi 17 Ultra - jó az optikája
- Samsung Galaxy S24 Ultra - ha működik, ne változtass!
Új hozzászólás Aktív témák
-
thon73
tag
válasz
WonderCSabo
#1116
üzenetére
Mindkettőtöknek nagyon köszönöm a segítséget; továbblökött a mélypontról. Ennyire nehéz hibakeresést még soha nem csináltam, ugyanis minden próbálkozás között újra kellett indítani a telót (ami kb. fél perc).
Bocsánat, az onPause irány véletlen volt (de egy fél nap keresés után már nem találtam más okot)
,valóban úgy tűnt, hogy az marad ki: a hiba CSAK leállításkor jelentkezett; az eclipse debugger nem követte ilyenkor az onPause-t (mint utóbb rájöttem: hiszen leállt), a Log-ot meg én bénáztam el. De a hozzászólásotok után végig belogoltam, és akkor kiderült, hogy onPause van, csak ami benne lenne - no az nincs.A tanulság kedvéért a hiba (egyébként utólag pofon egyszerű, de csapdás):
A program egy gigantikus RandomAccessFile-t ír/olvas az sd-n. (Ennyiben a felhasználói adatok azonnal kikerülnek.)
Az onPause részben (többek között) azt kell elmenteni, hogy valaki nem piszkál-e bele a RAF file-ba, amíg távol vagyunk. Ehhez mentem (név mellett) a méretét (File.length()) és az utolsó módosítás időpontját (File.lastModified()). Újraindításkor ezt ellenőrzi.
Ez a módszer prímán működik, amíg ki nem kapcsoljuk a telót.A gondot az jelentette, hogy a RandomAccessFile NEM szinkron írást csinál, sőt a close() után sem írja ki az adatokat! (Ezt bizonyára mindenki tudja, valószínűleg én is, csak nem gondoltam rá.) Véletlenül "rw" módot adtam meg az "rws" helyett.
Az érdekesség, hogy több hetes próbálgatás alatt is a nem-szinkron kiírás MINDIG bekövetkezett az onPause előtt, ha szabványosan léptem ki. Ha a telefont kikapcsoltam akkor SOHA nem következett be az aszinkron írás az onPause előtt (ezt két napja tudom).
((Megjegyzem, sehol nem találtam részletes dokumentációt arról, hogy pontosan mi és milyen sorrendben történik a kikapcsoláskor.))Van még egy probléma, ami komoly fejtörésre adhat okot: RandomAccessFile "rws" írásakor SEM stimmel a lastModified() érték a visszaolvasáskor!! Az esetek 90%-ban pontosan EGY másodperc (1000 ms) különbség van a két külön alkalommal visszaolvasott érték között!! Mivel a lastModified() érték MINDIG három 0-val végződik (vagyis nem ms, hanem másodperc pontos) valószínűleg a kerekítésnél lehet gond; de ezt nem tudom, csak gondolom. Hivatkozást nem találtam SGS2 és Note gépeken próbáltam.
Köszönöm, hogy kipróbáltátok, teljesen fals útról térítettek vissza; így jópár további óra alatt meglett a hiba!
Új hozzászólás Aktív témák
- Tőzsde és gazdaság
- Sokkal jobb ajánlat lett elődjénél az iPhone 17e
- Megérkezett az új, M4-es iPad Air
- Harcművészet topic
- Mesterséges intelligencia topik
- NVIDIA GeForce RTX 5080 / 5090 (GB203 / 202)
- Luck Dragon: Asszociációs játék. :)
- exHWSW - Értünk mindenhez IS
- Milyen routert?
- lkristóf: Prohardver fórum userscript – hogy lásd, mikor neked válaszoltak
- További aktív témák...
- Teljesen új Samsung A55 DS 5G 8/128GB Awesome Iceblue (jegeskék) eladó
- Bonola 3 az 1-ben töltőállomás több Apple eszközhöz! Új!
- Eladó ASUS TUF Gaming F15 (TUF507ZV4-LP121W) i7, 24gb ram RTX 4060, gamer laptop!
- GIGA AKCIÓ! HP Elitebook 850 G8, I7-1185G7, 32 GB, 512 SSD MAGYAR VILÁGÍTÓS BILLENTYŰZET
- AMD Ryzen R9 5900X 12Mag / 24Szál / 3,7 / 4,8 GHz / 22 Hónap Alza.hu garancia / Beszámítás OK!
- Apple iPhone 14 Pro / 128GB / Kártyafüggetlen / 12Hó Garancia / Akku: 86%
- 213 - Lenovo Legion 5 (15ACH6H) - AMD Ryzen 5 5600H, RTX 3060
- Xiaomi Mi 11 lite 5G NE 256GB, Kártyafüggetlen, 1 Év Garanciával
- BESZÁMÍTÁS! ASRock A520M R5 5500 16GB DDR4 512GB SSD RTX 2060 6GB CM Masterbox MB311L ARGB 500W
- Gamer PC-Számítógép! Csere-Beszámítás! I5 10400F / GTX 1070 8GB / 16GB DDR4 / 512 Nvme SSD
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest
,valóban úgy tűnt, hogy az marad ki: a hiba CSAK leállításkor jelentkezett; az eclipse debugger nem követte ilyenkor az onPause-t (mint utóbb rájöttem: hiszen leállt), a Log-ot meg én bénáztam el. De a hozzászólásotok után végig belogoltam, és akkor kiderült, hogy onPause van, csak ami benne lenne - no az nincs.
