3

我想使用 SQLite 数据库将数据存储在 Android 应用程序中。没问题。但是在预定义的时间间隔(每天 10、14、18 和 22 点),我想运行一个IntentService也需要访问数据库的程序。问题来了:

当用户在IntentService启动时使用应用程序时,会出现问题,因为 中有一个数据库连接处于活动状态,ActivityIntentService. 所以数据库将被锁定并且IntentService会失败,对吗?

我如何实现这一点,在这些情况下,IntentService只是等待Activity完成当前操作(SELECT,UPDATE等)然后正常运行?

在我的活动中,我在 中打开数据库连接(通过SQLiteOpenHelper)并在 中onCreate关闭它onDestroy。这是否意味着 IntentService 在此期间没有机会在数据库上工作?

4

1 回答 1

4

所以数据库会被锁定,IntentService 会失败,对吧?

如果他们同时对不同的SQLiteDatabase对象执行操作,是的。

我如何实现这一点,在这些情况下,IntentService 只是等待 Activity 完成当前操作(SELECT、UPDATE 等)然后正常运行?

对活动和服务使用单个SQLiteOpenHelper实例,无论是通过单例、自定义Application对象还是ContentProvider.

于 2012-06-04T00:19:29.573 回答