2
我有一个应用程序有一段时间运行的IntentService。如果它们都一起运行,那么写入数据库的SQL语句就会彼此绊倒(datbase被锁定的错误)并且正在崩溃应用程序。活动和服务如何同时写入数据库?
活动和服务有没有办法共享相同的数据库连接?
我有一个应用程序有一段时间运行的IntentService。如果它们都一起运行,那么写入数据库的SQL语句就会彼此绊倒(datbase被锁定的错误)并且正在崩溃应用程序。活动和服务如何同时写入数据库?
活动和服务有没有办法共享相同的数据库连接?
正如Falmarri所示,您可以使用内容提供者。
使用标准Java线程同步选项(例如,java.util.concurrent
,关键字)来同步访问。
该活动不应写入数据库。该活动应该发送一个Intent
到IntentService
并且有它写入数据库。
使用内容提供者。 – Falmarri 2011-02-06 11:54:08
使用内容提供者,并确保使用共享的`SQLiteDatabase`。 ContentProviders不是线程安全的;你需要确保锁定发生(即允许`SQLiteDatabase`为你做)。 – 2011-02-06 14:27:46