首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >android应用程序中并发sqlite访问

android应用程序中并发sqlite访问
EN

Stack Overflow用户
提问于 2013-10-02 12:55:53
回答 1查看 255关注 0票数 0

我的申请有:

代码语言:javascript
复制
 Activity A that reads from sqlite database
 Service with notification that writes to the database
 on clicking Notification, Activity A opens up

ActivityA的读取任务非常小(参考读取所需的时间),但是服务对数据库的写入非常长(,有时需要5-10分钟的)。

现在,当服务运行时,我单击通知,必须从数据库读取的ActivityA无法执行其读取,因为已经有一个服务正在写入该数据库。

因此,activityA必须等待(5-10分钟)才能从数据库读取。

在进一步的研究中,我发现

http://developer.android.com/reference/android/database/sqlite/SQLiteDatabase.html#beginTransactionNonExclusive()

当我试图在sqliteopenhelper类中实现这个方法时,我得到了错误,因为我的应用程序使用了min 10。那么,如何使该方法在api 10中工作,或者是否有其他方式可以进行并行数据库访问?

EN

回答 1

Stack Overflow用户

发布于 2013-10-02 13:09:57

还有其他方式可以进行并行数据库访问吗?

我认为没有什么特别的方法来实现它。您应该使用经典的Java同步来同步访问数据库。

最重要的是,您必须确保只有一个连接到数据库的(不能同时从两个不同的连接写入/读取)。试着考虑一下Singleton的用法。在这种情况下(以及在其他情况下),它是非常有效和干净的解决方案,您可以避免访问db的许多问题。

你说过你的任务可以持续5-10分钟。在类似的情况下,每个用户都应该知道您正在后台e.q中执行一些计算。显示一些progressDialog,progressBar或简单的启动动画的图像。

如果您在列表中显示了一些数据,这是使用延迟加载的好理由。

也请看这些文章:

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19137417

复制
相关文章

相似问题

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