android - 快速阅读联系人android

标签 android android-contacts

在android中有没有更快的读取联系人的方法?例如,我使用光标的方法需要 3-5 秒来读取 30-50 个联系人。很长。

        Cursor cursor =  managedQuery(ContactsContract.Contacts.CONTENT_URI, null, null, null, null);      
           while (cursor.moveToNext()) 
           {           
               String contactId = cursor.getString(cursor.getColumnIndex(ContactsContract.Contacts._ID));

               String hasPhone = cursor.getString(cursor.getColumnIndex(ContactsContract.Contacts.HAS_PHONE_NUMBER));

               if ( hasPhone.equalsIgnoreCase("1"))
                   hasPhone = "true";
               else
                   hasPhone = "false" ;

               if (Boolean.parseBoolean(hasPhone)) 
               {
                Cursor phones = getContentResolver().query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI, null,ContactsContract.CommonDataKinds.Phone.CONTACT_ID +" = "+ contactId,null, null);
                while (phones.moveToNext()) 
                {
                  names.add(cursor.getString(cursor.getColumnIndexOrThrow(ContactsContract.Contacts.DISPLAY_NAME))); 
                  numbers.add(phones.getString(phones.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER)));
                }
                phones.close();
               }
          }     

有什么想法吗?

最佳答案

你的问题很有趣....

读取快速联系人,因为从 ContactsContract 读取联系人数据需要时间。

我不知道你使用的另一种方法,但你仍然可以通过向 managedQuery 提供 String[] 投影参数来提高性能...

仅从 contactsContract 获取您需要的那些数据,因为通过提供空值,它会获取记录的所有列。

关于android - 快速阅读联系人android,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10250530/

相关文章:

android - ViewPager 快速滑动给出了 IndexOutOfBoundsException

android - onDelete = NO_ACTION 导致错误 : "SQLiteConstraintException: FOREIGN KEY constraint failed" (code 787)

android - Kotlin 中的 Room Persistence lib 实现

android - 如何解决 "Can' t 更新应用程序(错误代码 : 901)"error?

android - 尝试访问手机联系人时未调用 OnActivityResult

android - 在 Android 中获取热门联系人数据

android - 将我的 Android 手机连接到 DDMS SDK 实用程序

android - 如何在可扩展 ListView 中折叠组 View 上方和下方的所有 subview ?

android - 借助联系人 ID 获取联系人的所有详细信息

java - Android 查找联系人时出错