我想使用SQLite数据库在Android应用程序中存储数据。没问题。但是在预定义的时间间隔(每天10,14,18和22点),我想运行一个需要访问数据库的IntentService
。这就是问题所在:
当用户在IntentService
启动时使用该应用程序时,会出现问题,因为Activity
中有一个数据库连接处于活动状态,而IntentService
中将建立一个数据库连接}。所以数据库将被锁定,IntentService
将失败,对吗?
我是如何实现这一点的,在这些情况下,IntentService
只是等待Activity
完成当前操作(SELECT
,UPDATE
等)和然后正常运行?
在我的活动中,我在SQLiteOpenHelper
中打开数据库连接(通过onCreate
)并在onDestroy
中将其关闭。这是否意味着IntentService在此期间没有机会在数据库上工作?
答案 0 :(得分:4)
因此数据库将被锁定,IntentService将失败,对吗?
如果他们在单独的SQLiteDatabase
个对象上同时执行操作,是的。
如何实现这一点,在这些情况下,IntentService只是等待Activity完成当前操作(SELECT,UPDATE等)然后正常运行?
对活动和服务使用单个SQLiteOpenHelper
实例,无论是通过单例,自定义Application
对象还是ContentProvider
。