SQLite
 sql >> база данни >  >> RDS >> SQLite

SQLiteDiskIOException с код за грешка 10:грешка в дисковия вход/изход

Тъй като използвате външно хранилище, приложението ви трябва да е наясно със състоянието на външно хранилище, което можете да получите чрез Environment.getExternalStorageState() .

Трябва да осъществявате достъп до външна памет само когато състоянието е MOUNTED .

Ако се опитвате да отворите файл (или SQLite DB; това е просто файл!) по време на стартиране на устройството, вие определено имат проблеми, тъй като външното съхранение ене монтирано до началото на стартирането на устройството (след като се покаже началният екран).

Изходът от това е да регистрирате IntentFilter да бъдете уведомени за всички промени в състоянието на външната памет и да се държите съответно.

Винаги е добра идея да прочетете документацията! Вижте документацията за Android за подробности:http://developer.android.com/reference/android/os/Environment.html

Използването на външно хранилище за тази цел е съмнително, защото не можете да контролирате кога то стане недостъпно! Например, потребителят включва устройството си в USB на своя компютър и избира опцията „Активиране на USB Mass Storage“, за да може да има достъп до външното хранилище на устройството си от своя компютър. Лоши новини! Приложението ви ще бъде изключено от външното хранилище и най-вероятно без възможност за извършване на почистване на IO!

При това състояние на нещата сега ви остава какво да правите с всички данни, които бихте поставили във вашата база данни, само ако бяха налични.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как да изтрия конкретни редове в SQLite база данни

  2. не може да се копира база данни с помощта на клас SQLiteAssetHelper

  3. SQLite Поръчайте по

  4. Как да извлечете два Json отговор Json обект и масив

  5. Как да инсталирате SQLite на macOS