Mi è stato chiesto in un'intervista come possiamo impostare la dimensione massima per sqlite db per la nostra app per Android. E come possiamo gestire quando viene raggiunta la dimensione massima?Specifica la dimensione db massima sqlite per la mia app. Come gestire db full exception
MODIFICA: la risposta di Marina Lynn sotto sembra accettabile per questa domanda. Ma ci sono degli ascoltatori che vengono attivati quando la dimensione del db raggiunge il limite che abbiamo specificato? (O qualcosa del genere)
Cosa fare quando dimensione massima viene raggiunta non è una domanda utile, perché poi è troppo tardi. Dovresti cercare di evitare di raggiungere il limite eliminando i vecchi dati; vedi anche http://www.sqlite.org/pragma.html#pragma_auto_vacuum. –
Non sono d'accordo con @CL. L'uso di SQLite come cache persistente è un caso di utilizzo legittimo della dimensione massima, quindi la domanda è utile. Durante l'inserimento di un nuovo record, lancia SQLiteFullException, in modo da poter eliminare il record più vecchio e riprovare (in un ciclo while se è necessario rimuovere diversi record per fare spazio a quello nuovo). Nota sull'implementazione: se il database è vuoto e non si riesce ancora a inserirlo, interrompere poiché il singolo record è più grande della dimensione massima. –
La risposta di Marinna è sufficiente. Non hai bisogno di un "ascoltatore" qui perché l'eccezione che ottieni sarà sincrona all'operazione che stai tentando di fare. Se si includono solo le funzioni di aggiornamento/inserimento e si verifica l'eccezione. Se ti interessa il "limite" che ti viene dato, puoi sempre impostare il limite in modo che sia un po 'inferiore al limite effettivo per raggiungere questo obiettivo. Tieni presente che l'obiettivo è mantenere le dimensioni del database, non limitare l'utente o te stesso in altri modi. Oltre a ciò, un ascoltatore non sarà utile poiché potresti comunque essere ovunque nell'applicazione. – Edison