sql >> Databáze >  >> RDS >> SQLite

SQLiteDiskIOException s kódem chyby 10:chyba vstupu/výstupu disku

Protože používáte externí úložiště, vaše aplikace si musí být vědoma stavu externího úložiště, který můžete získat pomocí Environment.getExternalStorageState() .

K externímu úložišti musíte přistupovat pouze tehdy, když je stav MOUNTED .

Pokud se pokoušíte otevřít soubor (nebo SQLite DB; je to jen soubor!) během spouštění zařízení, určitě mají problémy, protože externí úložiště není připojeno až do spuštění zařízení (po zobrazení domovské obrazovky).

Cesta ven je zaregistrovat IntentFilter být informován o všech změnách stavu externího úložiště a podle toho se chovat.

Vždy je dobré si přečíst dokumentaci! Podrobnosti naleznete v dokumentaci systému Android:http://developer.android.com/reference/android/os/Environment.html

Použití externího úložiště pro tento účel je pochybné, protože nemůžete ovlivnit, kdy bude nedostupné! Uživatel například zapojí své zařízení do USB na svém počítači a vybere možnost „Povolit velkokapacitní úložiště USB“, aby mohl ze svého počítače přistupovat k externímu úložišti svého zařízení. Špatné zprávy! Vaše aplikace bude odpojena od externího úložiště a s největší pravděpodobností bez možnosti provést vyčištění IO!

S tímto stavem věcí vám nyní zbývá, co dělat se všemi daty, která byste vkládali do své databáze, kdyby jen byla dostupná.




  1. SQL SERVER – jeden trik pro manipulaci s dynamickým SQL, abyste se vyhnuli útoku SQL Injection?

  2. Spuštění klastru MariaDB Galera bez nástrojů pro orchestraci – DB Container Management:Část druhá

  3. Exportujte data tabulky Postgresql pomocí pgAdmin

  4. SQL IN operátor pro začátečníky