我在我的应用程序中编写了SQLite数据库的单元测试,这个奇怪的问题已经悄悄进入。测试包中有多个测试文件按顺序运行。
最初,在其中一个测试中,ContentResolver用于使用mContext.getContentResolver()
查询数据库,它的工作方式应该如此。
然后,在另一个测试中,我通过调用mContext.deleteDatabase()
来删除整个数据库,并通过调用getWritableDatabase()
来使用SQLiteOpenHelper对象重新创建数据库,这也可以正常工作。
问题在此之后开始,ContentResolver再次用于对数据库进行操作,而ContentResolver现在与以前的数据库不对应。
使用ContentResolver完成的任何查询/插入操作都不对应于直接在数据库上完成的相同操作(我直接在数据库上插入,我得到一个rowId,但是当我使用ContentResolver查询该行时,我得到回一个空光标)
我无法弄清楚这里发生了什么。