Советы по реализации DataStore в Android? - PullRequest
1 голос
/ 12 августа 2011

Я работаю над созданием хранилища данных на Android (которое не использует SQLite), начиная с настольной версии нашей библиотеки Java для одного приложения. Идеальным решением будет:

  • выполняется в своем собственном процессе, обеспечивая доступ к другим приложениям по той или иной форме IPC
  • постоянно, и поэтому приложение, использующее его, не потеряет данные при отключении телефона
  • достаточно отзывчивый

Используя мой фон клиент-серверной архитектуры, я сначала попытался использовать Service, с которым другие приложения могут связываться, используя bindService и другие вызовы. В результате получилось качество # 1 (и # 3 в некоторой степени) выше, но мне не было ясно, когда записывать все эти данные обратно в файловую систему, тем более что оказывается, что метод onDestroy() не гарантирован быть вызванным, особенно во время выключения машины. Использование сигналов тревоги для периодического сохранения данных также не является хорошим решением, так как это может привести к незафиксированным изменениям при остановке процесса.

Теперь, я думаю об использовании ContentProvider, что я считаю также философски лучшим способом. Однако проблема № 2 все еще остается: как я могу гарантировать, что незафиксированные изменения не останутся при выключении системы, не жертвуя при этом производительностью, используя наивные методы, такие как запись в файловую систему при каждой операции? Интересно, как собственная реализация SQLite достигает этого?

Пожалуйста, предложите правильный способ сделать это. Это не должно быть так сложно, как я считаю:).

Спасибо.

...