是否有必要在关闭前检查游标是否为空

时间:2012-04-10 02:57:02

标签: android android-contentprovider

我总是写这样的代码:

Cursor c = getContentResolver().query(uri, 
        PHONE_LOOKUP_PROJECTION, null, null, null);

if (c != null) {
    if (c.moveToFirst()) { 
        bundle.contactId = c.getLong(LOOKUP_ID_COLUMN_INDEX);
        bundle.name = c.getString(LOOKUP_DISPLAY_NAME_COLUMN_INDEX);
    }


    c.close();
}

但如果有必要检查c是否为NULL,我会加倍。因为我觉得值查询返回总是不为null,即使它什么都不包含。

1 个答案:

答案 0 :(得分:2)

相信我你必须检查它是否为空(如果你愿意,我会做'必须'发光并跳转),如果你想避免光标相关的崩溃,特别是当您对数据源进行重新查询和数据更新。你现在正在正确地做到这一点。始终检查null并始终检查moveToFirst()返回的布尔值。