Android 在database.close()之后重新编译compiledQuery

Android 在database.close()之后重新编译compiledQuery,android,sqlite,Android,Sqlite,我在android应用程序中使用SQLite,需要执行一些复杂的insert语句(带有子查询) 我发现SQLiteStatement在这方面非常有用。它可以作为返回自动递增主键的insert语句进行多次编译和执行 由于我要在Activity#onPause()上关闭我的SQLiteOpenHelper(它关闭包含的SQLiteDatabase),然后在Activity#onResume()中重新打开它,我将一次又一次地获得不同的SQLiteDatabase实例 我是否应该为每个SQLiteDat

我在android应用程序中使用SQLite,需要执行一些复杂的insert语句(带有子查询)

我发现
SQLiteStatement
在这方面非常有用。它可以作为返回自动递增主键的insert语句进行多次编译和执行

由于我要在
Activity#onPause()
上关闭我的
SQLiteOpenHelper
(它关闭包含的
SQLiteDatabase
),然后在
Activity#onResume()
中重新打开它,我将一次又一次地获得不同的
SQLiteDatabase
实例

我是否应该为每个
SQLiteDatabase
实例重新编译查询

或者我可以将编译后的语句缓存在静态变量中,并成功地将其用于不同的
SQLiteDatabase
实例

源代码建议我应该(
SQLiteStatement
包含对
SQLiteDatabase
的引用)。。。但我不确定


非常感谢您的帮助。

SQLiteStatement
对象与特定的
SQLiteDatabase
对象相关联,并且不能移动到另一个对象(没有用于该对象的函数,编译的结果无论如何也不会在任何其他数据库中工作)

您必须为新的数据库对象创建新的语句对象