Witam, pracoholika
Mam kilka pytan dotyczacych sqlite na androidzie.
Pisze aplikacje, ktora bedzie korzystac z max 3,4 tabel na bazie oraz powiedzmy 6 roznych Activities.
I tak, czy raz stworzona baza jest pamietana czy musze odtwarzac stan tabel za kazdym razem przy uruchamianiu programu. Zakladam ze nie…jezeli nie wowczas w ktorym momencie programu powinienem stworzyc schemat bazy i jak blokowac aplikacje przed proba kolejnego jej tworzenia przy kolejnym uruchamianiu.
Dodatkowo tabele maja byc uzupelnione wartosciami domyslnymi, ktore bedzie mozna rozszerzac w programie. Czy dobra praktyka jest trzymanie tych wartosci w pliku w zasobach aplikacji res/raw oraz podczas instalowania bazy pobranie tych wartosci i wstrzykniecie do bazy?
I na koniec jezeli mam kilka Activieties powiedzmy ze na jednej chce wyswietlic cos z jednej tabeli na kolejnym Activieties dane z drugiej tabeli. W jaki sposob odwolywac sie do DatabaseHelper? Singletonem? dodatkowo kiedy powinienem zamykac polaczenie z baza? Przy kazdym wyjsciu z Activity ?
Masz moze jakis przyklad rozwiazujacy moje zagadki ?
Pozdrawiam!!
1) Baza tworzona jest tylko raz – wtedy gdy jej nie ma (ewentualnie podczas aktualizacji, kiedy zmienia się struktura tabel, możesz ją usunąć i stworzyć na nowo). Wszystko masz opisane pod tym adresem: http://www.android4devs.pl/2011/07/sqlite-androidzie-kompletny-poradnik-dla-poczatkujacych/ . Tam też jest implementacja własnego SQLiteOpenHelpera, gdzie jest metoda onCreate(). I to właśnie ona wywoływana jest tylko w momencie gdy baza danych fizycznie jeszcze nigdzie nie istnieje.
2) Zależy jakie to mają być wartości. Można przecież wypełnić bazę już podczas jej tworzenia, gdzieś w kodzie (skoro tworzona jest tylko raz, tak jak opisałem to powyżej).
3) Każdą aktywność mimo wszystko traktowałby osobno i łączył się z bazą po jej (Aktywności) utworzeniu (onCreate()), natomiast rozłączał po jej zniszczeniu (onDestroy()). Czy wtedy singleton byłby potrzebny? Nie sądzę (pod warunkiem, że poprawnie będziesz się łączył/rozłączał z bazą w Aktywnościach).
Jeśli chcesz załączyć kod źródłowy przejdź do edytora HTML (ostatni przycisk – Show source) i swój kod umieść wewnątrz znaczników <pre class=”brush: język”></pre> (np. <pre class=”brush: java”>System.out.println(„Lorem ipsum”)</pre> ).
Listę dostępnych języków znajdziesz na tej stronie.
Tylko zarejestrowani użytkownicy mogą odpowiadać na pytania.
zaloguj się lub skorzystaj ze swojego profilu:
Student Informatyki Stosowanej na Uniwersytecie Jagiellońskim. Z zamiłowania Android developer, z doświadczenia programista webowy i producent muzyczny (Dreamlab Onet.pl, RMF FM, eLO RMF) . Uzależniony od podróży, dobrej kawy, i gier wideo. Pracoholik (tak mówią) i gadżetomaniak (tak sądzi).
Zaloguj się lub skorzystaj ze swojego profilu
Odpowiedzi: 9
Odpowiedzi: 5
Odpowiedzi: 4
Odpowiedzi: 3
Odpowiedzi: 2
Komentarzy: 9
Komentarzy: 4
Komentarzy: 3
Komentarzy: 2
Komentarzy: 2
© 2011 android4devs.pl
created by froger_mcs
baza danych dobra praktyka…
1 Odpowiedź
Twoja odpowiedź
O autorze
Ostatnie oferty pracy
Najpopularniejsze pytania
Popularne artykuły
Kategorie
Archiwum
Tagi
O autorze
- Programista Android
Opublikowano 27.08.2011, Miejsce pracy: Białystok
- Stoper
- Widget i przechowywanie danych
- Sprawdzenie stanu połączenia
- Sterowanie inną aplikacją
- Problem z emulatorem
- AsyncTask – asynchroniczne wykonywanie czasochłonnych zadań
- Activity – podstawowe informacje, cykl życia
- Content Providers – dostęp do danych przy pomocy dostawców treści
- Podstawowe elementy UI – Button, EditText, TextView, Toast, LinearLayout
- ListView, pierwsze kroki
- Biblioteki zewnętrzne
- Geolokalizacja
- Kompatybilność
- Narzędzia
- Pierwsze kroki
- Podstawowe komponenty
- Przechowywanie danych
- Środowisko pracy
- UI
- Wielowątkowość
- Listopad 2011 (1)
- Sierpień 2011 (21)
- Lipiec 2011 (17)
|
|
Mirosław StanekMirosław StaneklinklapserdaqMirosław StaneklinkActivityAlertDialogAndroidManifestAppWidgetAVDBindingBroadcastReceiverButtonDialogEditTextFiltry IntencjiGeolokalizacjaGoogle MapsGPSIDEIntentIntentFiltersksoap2ListViewMapViewMapyNinePatchNotificationPendingIntentPowiadomieniaPraca w tlePreferenceActivityProgressDialogprzechowywanie danychRotacjaSDKServicesSharedPreferencesSMSSOAPSQLiteTextViewTitlebarToastUIUstawieniaUsługiViewHolderWebViewWidget
0zadane 29 października 20110