【发布时间】:2011-05-28 18:33:14
【问题描述】:
我正在为 android 制作一个 IM 客户端,我正在使用用于存储联系人和其他信息的数据库...在我的应用程序中,我有一个活动和一项服务。我需要在服务和活动上同时打开三个数据库。
我使用三个数据库,因为我希望数据库更易于管理,而不会出现写入同步的问题。 (据我所知,我需要同步写入数据库,因为它可能会崩溃)。
为了同时从服务和活动管理数据库,我认为单例或静态类的 DatabaseHelper 可以帮助我...
所以我开始通过在活动中创建两个 databasehelper 全局对象来进行测试,每个都打开一个不同的数据库,运行项目后我注意到最后打开的数据库在两个对象中仍然打开:((,为什么会这样?
有人可以建议我如何使这项工作吗? 谢谢!
LE:经过更多测试后,我创建了一个数据库助手的静态对象,打开一个服务,我从该服务中获取数据库对象,同时我创建了两个 for 语句,一个在活动中,一个在服务中运行0 到 3000 并将一些值添加到同一个数据库中,然后读取数据库。
在这次运行之后,我注意到数据库仍在正常运行并且没有错误。奇怪的是,服务仅在活动完成后才运行。这是为什么? 谢谢!
【问题讨论】:
-
也许,您在活动和服务的主线程中使用数据库。
标签: sql android database sqlite