2012-04-10 26 views
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为空或不是。因为我觉得值查询返回时总是不为空,即使它不包含任何内容。

+0

getContentResolver()方法来自哪里? – Bill 2012-04-10 03:04:41

+0

此方法位于一个活动中。所以'getContentResolver()'属于活动 – 2012-04-10 03:06:12

+0

这是在Android API还是来自第三方库? – Bill 2012-04-10 03:09:15

回答

2

相信我你必须检查它是否为空(如果我愿意,我会让'必须'发光并跳过),如果你希望避免将来发生游标相关的崩溃,数据更新到您的数据源。你现在正在做的正确。始终检查null并始终检查moveToFirst()返回的布尔值。