Autore Topic: DB : Aprire e chiudere  (Letto 1460 volte)

Offline mimmog

  • Utente senior
  • ****
  • Post: 731
  • Respect: +11
    • MisterX_Dev
    • Mostra profilo
  • Dispositivo Android:
    Galaxy Note e Galaxy Nexus
  • Play Store ID:
    MisterX_Dev
  • Sistema operativo:
    Windows 7
DB : Aprire e chiudere
« il: 31 Gennaio 2011, 01:16:02 CET »
0
Una domanda che forse potrà sembrare stupida: ma voi quando usate un database lo aprite, fate l'operazione di query e lo chiudete subito oppure lo lasciate aperto e poi sul finish/onDestroy la chiudete ??  ???

Offline Ricky`

  • Amministratore
  • Utente storico
  • *****
  • Post: 3489
  • Respect: +506
    • Github
    • Google+
    • rciovati
    • Mostra profilo
Re:DB : Aprire e chiudere
« Risposta #1 il: 31 Gennaio 2011, 08:36:26 CET »
0
Credo che se non ti serve tenere il db aperto è meglio chiuderlo subito dopo aver fatto la query.
In caso contrario puoi anche chiuderlo nell'onDestroy ;)

Offline Giovanni D'Addabbo

  • Utente normale
  • ***
  • Post: 163
  • Respect: +8
    • Google+
    • giovannid
    • giovanni.daddabbo
    • magoscuro
    • Mostra profilo
    • Rhubbit.it - Sviluppo app Android/iOs
  • Dispositivo Android:
    Nexus 5
  • Play Store ID:
    Rhubbit srl
  • Sistema operativo:
    Windows/Mac/Linux
Re:DB : Aprire e chiudere
« Risposta #2 il: 31 Gennaio 2011, 09:05:00 CET »
0
solitamente si valuta l'operazione o le operazioni che devi fare.
Ad esempio....
se devi fare 10000 inserimenti tutti assieme, magari una tantum, è meglio aprire il db fare gli inserimenti e chiuderlo anzichè fare due operazioni in più di chiusura moltiplicato 10000 (potrebbe inficiare le prestazioni, quindi questo introduce un altro elemento legato al tipo di sistema che vuoi metter su, se puoi ignorare un calo di prestazioni, se l'operazione avviene in background ecc ecc)
se devi fare 1 inserimento ogni tanto è meglio aprire il db fare l'inserimento e chiuderlo

byeeeeeeeeeeee

Offline mimmog

  • Utente senior
  • ****
  • Post: 731
  • Respect: +11
    • MisterX_Dev
    • Mostra profilo
  • Dispositivo Android:
    Galaxy Note e Galaxy Nexus
  • Play Store ID:
    MisterX_Dev
  • Sistema operativo:
    Windows 7
Re:DB : Aprire e chiudere
« Risposta #3 il: 31 Gennaio 2011, 09:07:43 CET »
0
OK grazie ;)

Offline mimmog

  • Utente senior
  • ****
  • Post: 731
  • Respect: +11
    • MisterX_Dev
    • Mostra profilo
  • Dispositivo Android:
    Galaxy Note e Galaxy Nexus
  • Play Store ID:
    MisterX_Dev
  • Sistema operativo:
    Windows 7
Re:DB : Aprire e chiudere
« Risposta #4 il: 31 Gennaio 2011, 10:01:06 CET »
0
Scusate un'altro dubbio sempre relativo al DB. Nel mio caso ho la pagina principale con dei tab ed ogni tab ha una activity con una listview tramite la quale vengono visualizzati dei dati presi dal database. Se io metto l'apertura del DB nell'oncreate, effettuo la query che popola la listview e poi chiudo il DB, se l'activity va in onPause quando viene richiamata non potrà aprire più il db perchè l'onCreate non viene  più richiamato ma verrà chiamato l'onResume (oppure onRestart non ricordo) quindi dovrei fare l'override anche di uno di questi 2 metodi nel quale mettere l'apertura del database o sbaglio ?

Poi altra cosa (forse stupida) ma non è possibile mettere l'apertura del database nell'activity principale (quella dei tab) in modo che le activity di ogni tab sfruttino tutte quell'apertura del db ??

Offline Ricky`

  • Amministratore
  • Utente storico
  • *****
  • Post: 3489
  • Respect: +506
    • Github
    • Google+
    • rciovati
    • Mostra profilo
Re:DB : Aprire e chiudere
« Risposta #5 il: 31 Gennaio 2011, 10:16:25 CET »
0
Puoi fare in modo che la tua classe che gestisce il database sia Singleton (http://it.wikipedia.org/wiki/Singleton) ;)

Offline mimmog

  • Utente senior
  • ****
  • Post: 731
  • Respect: +11
    • MisterX_Dev
    • Mostra profilo
  • Dispositivo Android:
    Galaxy Note e Galaxy Nexus
  • Play Store ID:
    MisterX_Dev
  • Sistema operativo:
    Windows 7
Re:DB : Aprire e chiudere
« Risposta #6 il: 31 Gennaio 2011, 11:06:15 CET »
0
sai che non ho capito ? cioè se io faccio una classe singleton suppongo che quando mi serve l'stanza devo comunque richiamarla e allora da cosa si differenzia rispetto alla mia attuale classe che gestisce il db ? solo per il fatto che non viene creata sempre una nuova istanza ma utilizzata la precedente ? però sempre l'openDB() ed il closeDB() lo devo chiamate in ogni activity o no ?

Offline Ricky`

  • Amministratore
  • Utente storico
  • *****
  • Post: 3489
  • Respect: +506
    • Github
    • Google+
    • rciovati
    • Mostra profilo
Re:DB : Aprire e chiudere
« Risposta #7 il: 31 Gennaio 2011, 11:08:40 CET »
0
Puoi chiamare l'openDb quando crei l'instanza e il closeDB quando termini l'applicazione :)

Offline mimmog

  • Utente senior
  • ****
  • Post: 731
  • Respect: +11
    • MisterX_Dev
    • Mostra profilo
  • Dispositivo Android:
    Galaxy Note e Galaxy Nexus
  • Play Store ID:
    MisterX_Dev
  • Sistema operativo:
    Windows 7
Re:DB : Aprire e chiudere
« Risposta #8 il: 31 Gennaio 2011, 11:21:03 CET »
0
Ma è quello che già faccio, l'unica cosa che così posso omettere di istanziare sempre la classe con il new ClasseGestioneDB() io invece volevo una cosa tipo che aprivo il db nell'acvtivity che visualizza le tab e poi il db aperto potesse essere utilizzato da tutte le actvity senza richiamare sempre openDB una sorta di variabile di sessione insomma :)

Offline Nicola_D

  • Moderatore
  • Utente storico
  • *****
  • Post: 2479
  • SBAGLIATO!
  • Respect: +323
    • Github
    • Google+
    • nicoladorigatti
    • Mostra profilo
  • Dispositivo Android:
    Nexus 6p, Nexus 4, Nexus S, Nexus 7(2012)
  • Sistema operativo:
    Windows 7
Re:DB : Aprire e chiudere
« Risposta #9 il: 31 Gennaio 2011, 11:45:47 CET »
0
Ma è quello che già faccio, l'unica cosa che così posso omettere di istanziare sempre la classe con il new ClasseGestioneDB() io invece volevo una cosa tipo che aprivo il db nell'acvtivity che visualizza le tab e poi il db aperto potesse essere utilizzato da tutte le actvity senza richiamare sempre openDB una sorta di variabile di sessione insomma :)
con il singleton è cosi. Te fai getInstance(), se è gia stato inizializzato e aperto in qualsiasi activity sei ti prende l'istanza gia creata e sei a posto!
IMPORTANTE:NON RISPONDO A PROBLEMI VIA MESSAGGIO PRIVATO
LOGCAT: Non sai cos'è? -> Android Debug Bridge | Android Developers
               Dov'è in Eclipse? -> Window -> Open Prospective -> DDMS e guarda in basso!
[Obbligatorio] Logcat, questo sconosciuto! (Gruppo AndDev.it LOGTFO) - Android Developers Italia

Offline mimmog

  • Utente senior
  • ****
  • Post: 731
  • Respect: +11
    • MisterX_Dev
    • Mostra profilo
  • Dispositivo Android:
    Galaxy Note e Galaxy Nexus
  • Play Store ID:
    MisterX_Dev
  • Sistema operativo:
    Windows 7
Re:DB : Aprire e chiudere
« Risposta #10 il: 31 Gennaio 2011, 12:29:05 CET »
0
Ottimo allora! Provo subito! Grazie :)