Da du bruger External Storage, skal din applikation være opmærksom på External Storage-tilstanden, som du kan få via Environment.getExternalStorageState()
.
Du skal kun få adgang til eksternt lager, når tilstanden er MOUNTED
.
Hvis du forsøger at åbne en fil (eller SQLite DB; det er bare en fil!) under opstart af enheden, vil du bestemt har problemer, fordi eksternt lager er ikke monteret indtil et godt stykke ind i enhedens opstart (efter startskærmen vises).
Vejen ud af dette er at registrere et IntentFilter
at blive underrettet om alle ændringer i ekstern lagringstilstand og opføre sig i overensstemmelse hermed.
Det er altid en god idé at læse dokumentationen! Se Android-dokumentationen for detaljer:http://developer.android.com/reference/android/os/Environment.html
Det er tvivlsomt at bruge eksternt lager til dette formål, fordi du ikke kan kontrollere, hvornår det bliver utilgængeligt! For eksempel slutter brugeren sin enhed til USB på sin computer og vælger "Aktiver USB-masselager", så de kan få adgang til deres enheds eksterne lager fra deres computer. Dårlige nyheder! Din app vil blive afbrudt fra eksternt lager, og højst sandsynligt uden mulighed for at foretage nogen oprydning IO!
Med denne situation står du nu tilbage med hvad du skal gøre med alle de data, du ville lægge i din database, hvis bare de var tilgængelige.