0

我总是这样写代码:

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,我会加倍。因为我觉得值查询返回总是不为空,即使它不包含任何内容。

4

1 回答 1

2

相信我,如果您想避免将来与光标相关的崩溃,特别是当您对数据源进行请求和数据更新时,您必须检查它是否为空(如果可以的话,我会让“必须”发光并跳来跳去) . 你现在做得很好。始终检查 null 并始终检查 moveToFirst() 返回的布尔值。

于 2012-04-10T05:07:14.237 回答