代码注释

LSL
Sally-Liao 3 years ago
parent c10c60bd68
commit 4772fdfd29

@ -25,10 +25,11 @@ import android.util.Log;
import java.util.HashMap;
public class Contact {
public class Contact { //联系人
private static HashMap<String, String> sContactCache;
private static final String TAG = "Contact";
//定义字符串
private static final String CALLER_ID_SELECTION = "PHONE_NUMBERS_EQUAL(" + Phone.NUMBER
+ ",?) AND " + Data.MIMETYPE + "='" + Phone.CONTENT_ITEM_TYPE + "'"
+ " AND " + Data.RAW_CONTACT_ID + " IN "
@ -36,18 +37,20 @@ public class Contact {
+ " FROM phone_lookup"
+ " WHERE min_match = '+')";
//获取联系人
public static String getContact(Context context, String phoneNumber) {
if(sContactCache == null) {
sContactCache = new HashMap<String, String>();
}
//查找HashMap中是否已有phoneNumber信息
if(sContactCache.containsKey(phoneNumber)) {
return sContactCache.get(phoneNumber);
}
String selection = CALLER_ID_SELECTION.replace("+",
PhoneNumberUtils.toCallerIDMinMatch(phoneNumber));
Cursor cursor = context.getContentResolver().query(
Cursor cursor = context.getContentResolver().query( //再数据库中查找phoneNumber的信息
Data.CONTENT_URI,
new String [] { Phone.DISPLAY_NAME },
selection,
@ -55,17 +58,17 @@ public class Contact {
null);
if (cursor != null && cursor.moveToFirst()) {
try {
try { //找到信息
String name = cursor.getString(0);
sContactCache.put(phoneNumber, name);
return name;
} catch (IndexOutOfBoundsException e) {
} catch (IndexOutOfBoundsException e) { //出错后面的cursor.close()将不会执行
Log.e(TAG, " Cursor get string error " + e.toString());
return null;
} finally {
cursor.close();
cursor.close(); //关闭cursor释放资源
}
} else {
} else { //未找到信息
Log.d(TAG, "No contact matched with number:" + phoneNumber);
return null;
}

Loading…
Cancel
Save