Hirdetés
- Sokkal jobb ajánlat lett elődjénél az iPhone 17e
- Xiaomi 17 Ultra - jó az optikája
- Samsung Galaxy Watch (Tizen és Wear OS) ingyenes számlapok, kupon kódok
- Itt a Galaxy S26 széria: az Ultra fejlődött, a másik kettő alig
- MWC 2026: Óriásakkut tuszkoltak egy szupervékony hajlíthatóba
- Google Pixel topik
- Honor 200 Pro - mobilportré
- MWC 2026: Két fülhallgatóval bővült a Motorola tartozékainak kínálata
- iPhone topik
- MWC 2026: Bajnoki címre pályázik a Xiaomi Watch 5
Új hozzászólás Aktív témák
-
Karma
félisten
válasz
negyedes
#906
üzenetére
Lassíts egy kicsit. Egy iPhone-nyi képernyőn nem akartam regényt írni, ezért utalgattam csak a követendő irányra, de akkor most konkrétabban.
Kezdjük ott, hogy gondold át, hogy az alkalmazásod mit csinál, milyen képernyői vannak (jó közelítéssel ezek az Activityjeid); és ezekből melyik fér hozzá a DB-hez, mit csinál vele és mennyi ideig. Ha ezt a topikba leírod, bár nem kötelező, még hasznos is lehet. Ez azért kell, mert ez alapján tudod eldönteni, hogy ki legyen az adatbázis gazdája. Mint pár héttel ezelőtt említettem, ez különösen fontos - ezért is vár Contextet első paraméterként.
Ideális esetben, mondhatni alapelvként, a DB-hez csak nagyon ritkán fordulj, és sose fuss több kört mint szükséges, mert egyszerűen lassú.
Két primitív stratégiát felvázolok addig is, amíg gondolkodsz rajta.
1) (a kettőből ajánlott) Amelyik Activity adatbázist használ, az kezeli magának. Az onCreate metódusban hozod létre a DatabaseHandlert, contextként pedig this formájában az Activity-t adod meg. OnDestroyban meg bezárod. A kód többi részében pedig feltételezed, hogy a DB objektum nyitva van, és használod békésen.
2) Az alkalmazásod ugyebár több Activityből áll össze, de az Application objektum közös. Az Application osztály is Context, bár korlátozottabb jogokkal rendelkezik (nem nyúlhat a UI-hoz vagy az aktív Activity-hez például). Az adatbázishoz viszont pont elég.
Ezáltal meg tudod oldani azt, hogy induláskor egyszer kinyitod a DB-t (Application onCreate metódusban, a context ismét this), és majd a végén bezárod. Közben meg az Application egy tagváltozójában tárolod a handlert.
Van sok gány megoldás arra, hogy hogyan teszed elérhetővé az Activity-k felé: castolhatod az getApplicationContext() eredményét, csinálhatsz static mezőket, követheted a singleton mintát... Vagy használhatsz IoC jellegű logikát is.A lényeg az, hogy legyen meg a teljes életciklus fejben.
Új hozzászólás Aktív témák
- Folyószámla, bankszámla, bankváltás, külföldi kártyahasználat
- Nintendo Switch 2
- Sokkal jobb ajánlat lett elődjénél az iPhone 17e
- Kazy Computers - Fehérvár - Megbízható?
- Mibe tegyem a megtakarításaimat?
- AMD K6-III, és minden ami RETRO - Oldschool tuning
- Hosszú premier előzetest kapott az Arknights: Endfield
- Formula-1
- gban: Ingyen kellene, de tegnapra
- Xiaomi 17 Ultra - jó az optikája
- További aktív témák...
- Samsung 870EVO 1TB 2.5"
- HP Probook 445R G6,14",FHD,AMD Ryzen 5 3500U,8GB DDR4,256GB SSD,WIN11
- Mind a új MAKULÁTLAN Apple MacBook Air 15" M2 16B RAM 256GB Magyar billentyű garancia 2026.11.14
- Lenovo ThinkPad T480s,14",FHD,i5-7300U,8GB DDR4,256GB SSD,WIN11,TOUCH
- GARANCIÁLIS ASUS TUF F16 // Intel Core 5 210H // 16GB RAM // 1TB SSD // RTX 4050
- GYÖNYÖRŰ iPhone 13 mini 128GB Blue -1 ÉV GARANCIA - Kártyafüggetlen, MS3293
- PANASONIC Toughbook CF-53,i5-3340M,4GB RAM,500GB HDD,DVD,WIN10
- iPhone 12 Pro Max 128GB Pacific Blue -1 ÉV GARANCIA - Kártyafüggetlen, MS4328, 100% AKKSI
- Dell XPS 13 9300 i7-1065G7 8GB 1000GB FHD+ 500nit! 1 év garancia
- HIBÁTLAN iPhone 14 Pro 256GB Deep Purple -1 ÉV GARANCIA - Kártyafüggetlen, 100% Akkumulátor
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest

