Hirdetés
- Luck Dragon: Asszociációs játék. :)
- f(x)=exp(x): A laposföld elmebaj: Vissza a jövőbe!
- Klaus Duran: Panelkérdés.
- sziku69: Szólánc.
- sziku69: Fűzzük össze a szavakat :)
- Magga: PLEX: multimédia az egész lakásban
- Sub-ZeRo: Euro Truck Simulator 2 & American Truck Simulator 1 (esetleg 2 majd, ha lesz) :)
- drsanya: Simsonn Plus X pedálszett beszámoló vagy “teszt” egy szimulátoros szemével
- D1Rect: Nagy "hülyétkapokazapróktól" topik
- sh4d0w: Van-e még?
Ú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
Hirdetés
- Alaposan helyretette az AI ellenzőit az NVIDIA vezetője
- Apple asztali gépek
- Konzolokról KULTURÁLT módon
- Építő/felújító topik
- Okos Otthon / Smart Home
- NVIDIA GeForce RTX 5070 / 5070 Ti (GB205 / 203)
- Luck Dragon: Asszociációs játék. :)
- AMD K6-III, és minden ami RETRO - Oldschool tuning
- TCL LCD és LED TV-k
- Tiltott lett Lufthansa-csoport repülőin power bankot használni
- További aktív témák...
- Gamer PC-Számítógép! Csere-Beszámítás! I3 14100F / RTX 3070 8GB / 16GB DDR4 / 512 Nvme SSD
- iPhone 13 Pro Max (független,256GB, Sierra Blue)
- Lenovo LOQ 15IRX9 GAMER Laptop Intel Core i5-13450HX/16GB/512gb/RTX4050 6GB Win11 Pro
- Csere-Beszámítás! Xbox Series S 512GB! Számla + Garancia.
- ACER Nitro V 15 AMD Ryzen 5 7535HS/16GB/512GB/NVIDIA GeForce RTX 4050 6GB GDDR6
- Apple iPhone 13 128GB, Kártyafüggetlen, 1 Év Garanciával
- Tablet felvásárlás!! Apple iPad, iPad Mini, iPad Air, iPad Pro
- Samsung Galaxy S21 FE 5G 128GB, Kártyafüggetlen, 1 Év Garanciával
- Vadiúj VGA-k!! Kamatmentes részletre is! Érdeklődj!!!
- HIBÁTLAN iPhone 14 512GB Blue -1 ÉV GARANCIA - Kártyafüggetlen, MS3922
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest
Cég: Central PC számítógép és laptop szerviz - Pécs
Város: Pécs

