gpt4 book ai didi

android - 快速阅读联系人android

转载 作者:行者123 更新时间:2023-11-29 16:14:54 24 4
gpt4 key购买 nike

在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/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com