我正在尝试追踪我从客户端远程崩溃上传回来的错误,就好像我的SQLLiteDatabase中没有数据,因为之前的查询工作正常且数据明显存在。例如,在此处的代码中,假设有一个Profiles表包含一个配置文件行:
Profile p = null;
SQLiteQueryBuilder builder = new SQLiteQueryBuilder();
builder.setTables(ProfileDbKeys.PROFILES_TABLE_NAME);
builder.setProjectionMap(ProfileDbKeys.ColumnMap);
Cursor cursor = builder.query(db, ProfileDbKeys.ProfileFields, null, null, null, null, null, null);
if (cursor.moveToNext()) {
p = Profile.fromCursor(cursor);
}
cursor.close();
通常将p设置为一个值,但在某些情况下,它保持为null并导致线路崩溃。崩溃本身是故意的,因为如果我的客户端数据存储不工作,我宁愿使活动与可能腐败的状态进一步崩溃。
在我的日志中,我知道没有抛出SQLLite异常;好像数据库是空的。
任何人都可以提供任何有关为什么cursor.moveToNext()可能每隔一段时间不返回任何数据的见解?