From 944fc6a29a6d390de4f21a48e83ed6a61512cf30 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=B0=A2=E6=88=90=E6=89=AC?= <1329310186@qq.com> Date: Sun, 9 Apr 2023 21:37:27 +0800 Subject: [PATCH 1/2] =?UTF-8?q?=E6=B3=9B=E8=AF=BB=E6=8A=A5=E5=91=8A?= =?UTF-8?q?=E6=9C=80=E7=BB=88=E7=89=88=EF=BC=88=E5=8F=AF=E8=83=BD=E8=BF=98?= =?UTF-8?q?=E6=9C=89=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- doc/泛读报告.docx | Bin 406418 -> 406423 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/doc/泛读报告.docx b/doc/泛读报告.docx index 68d2b01b49b1b250b379f4fa0b23b695c71782de..fc716766ee0b0e4ce3a9e8d0d5275dfe8c509070 100644 GIT binary patch delta 16938 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

VMb{o}PJ%3p<*#UI~K)=dG3 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 From 78bc543d119d97174dc8278d682e77741c86c4cd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=B0=A2=E6=88=90=E6=89=AC?= <1329310186@qq.com> Date: Sun, 9 Apr 2023 22:02:27 +0800 Subject: [PATCH 2/2] =?UTF-8?q?=E6=8E=A8=E4=B8=80=E4=B8=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/net/micode/notes/data/Contact.java | 45 ++++++++++++++----- 1 file changed, 33 insertions(+), 12 deletions(-) diff --git a/src/Notes-master3/app/src/main/java/net/micode/notes/data/Contact.java b/src/Notes-master3/app/src/main/java/net/micode/notes/data/Contact.java index d97ac5d..68a4e6a 100644 --- a/src/Notes-master3/app/src/main/java/net/micode/notes/data/Contact.java +++ b/src/Notes-master3/app/src/main/java/net/micode/notes/data/Contact.java @@ -15,8 +15,14 @@ */ package net.micode.notes.data; +/** + * 当前文件所在的包名 + */ import android.content.Context; +/** + * Context类是Android自带的类不在包里,就要用import android.content.Context;将它导入,就相当于自己写的类。后面的同理 + */ import android.database.Cursor; import android.provider.ContactsContract.CommonDataKinds.Phone; import android.provider.ContactsContract.Data; @@ -25,7 +31,14 @@ import android.util.Log; import java.util.HashMap; -public class Contact { +/** + * 引用了STL里面的HashMap,用来映射联系人和电话号码 + */ +public class Contact + /** + * 通过两种方式访问联系人1.去数据库中2.去cache中,如果数据库中读了,将它存入cache中,和主存缓存机制类似 + */ +{ private static HashMap sContactCache; private static final String TAG = "Contact"; @@ -36,34 +49,42 @@ public class Contact { + " FROM phone_lookup" + " WHERE min_match = '+')"; - public static String getContact(Context context, String phoneNumber) { - if(sContactCache == null) { + /** + * 定义字符串CALLER_ID_SELECTION,用于匹配查找联系人 + * phone number + * data.mimetype 数据类型 + * item.type 联系人类型 + * 联系人ID + */ + + public static String getContact(Context context, String phoneNumber) /**获取联系人**/{ + if(sContactCache == null) /**联系人的cache为空,就初始化一个**/{ sContactCache = new HashMap(); } - if(sContactCache.containsKey(phoneNumber)) { + if(sContactCache.containsKey(phoneNumber)) /**查找cache中是否有phoneNumber对应的联系人信息**/{ return sContactCache.get(phoneNumber); } String selection = CALLER_ID_SELECTION.replace("+", - PhoneNumberUtils.toCallerIDMinMatch(phoneNumber)); + PhoneNumberUtils.toCallerIDMinMatch(phoneNumber));/**toCallerIDMinMatch是安卓自带的号码匹配工具,截取查询号码的后7位作为匹配依据**/ Cursor cursor = context.getContentResolver().query( Data.CONTENT_URI, - new String [] { Phone.DISPLAY_NAME }, - selection, + new String [] { Phone.DISPLAY_NAME },/**这个参数告诉查询要返回的列(Column),Contacts Provider提供了联系人的ID和联系人的NAME等内容,在这里,我们只需要NAME,所以提供这个参数DISPLAY_NAME**/ + selection,/**selection,设置条件,相当于SQL语句中的where**/ new String[] { phoneNumber }, null); - if (cursor != null && cursor.moveToFirst()) { - try { + if (cursor != null && cursor.moveToFirst()) {/**若数据库存在,则游标移动到游标所表示的信息元组的第一行开始**/ + try {/**联系人姓名,并将相关信息存入cache中**/ String name = cursor.getString(0); sContactCache.put(phoneNumber, name); return name; - } catch (IndexOutOfBoundsException e) { + } catch (IndexOutOfBoundsException e) {/**参数越界异常**/ Log.e(TAG, " Cursor get string error " + e.toString()); - return null; + return null;/**引入的util.log就是java自带的日志输出工具,而log.e则代表error,显示的颜色为红色**/ } finally { - cursor.close(); + cursor.close();/**关闭cursor游标**/ } } else { Log.d(TAG, "No contact matched with number:" + phoneNumber);