首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在并发数据存储中使用Android内置的SQLite存储可以吗?

在并发数据存储中使用Android内置的SQLite存储可以吗?
EN

Stack Overflow用户
提问于 2013-06-18 08:27:12
回答 1查看 214关注 0票数 1

我正在编写一个Android应用程序,它将包括

  1. 背景服务1,它定期读取传感器值(例如,程序每5分钟读取传感器值30秒,在测量期间值每秒读取两次),
  2. 后台服务2,它分析传感器值并从它们中计算出一些指标,
  3. 后台服务3,它在3-7天内运行一次,并从数据库中删除旧数据(传感器值和度量)和
  4. 一个GUI活动,如果用户打开应用程序并按某个按钮,它将显示一些传感器值和/或指标。

将有两个表- SensorDataMetrics。后台服务1将写入SensorData。后台服务2将从SensorData读取并写入Metrics。后台服务3将从两个表中删除行。GUI活动将从两个表中读取。

我在考虑如何为传感器值和度量实现线程安全存储。

一个显而易见的解决方案是使用内置的SQLite数据库。

我有以下问题:

  1. 在这种情况下使用安全吗?
  2. 安卓的SQLite会每秒写两次数值(longdouble)吗?
  3. 它是否支持并发访问(当GUI活动在SensorData和后台服务1上发出查询试图同时写入同一个表时会发生什么)?
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-06-19 19:24:03

  1. 通过使用SQLiteOpenHelper作为单例,您是线程安全的。SQLiteOpenHelper处理sqlite数据库的锁定(这是处理并发读/写的sqlite机制)。
  2. 这是要测试的东西。但是,一般说来,你需要经常写到数据库吗?您可以将数据缓存在内存中,并以较慢的速度将它们刷新到数据库。
  3. 简短的回答是“是的,它支持并发访问”。有关详细信息,请查看这个sqlite文件,android只是这个的包装器。在阅读此文档后,您可以将其配置为您认为合适的行为方式。
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17164013

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档