我正在使用Android的Xamarin.Mobile Component来使用代码获取联系人:
var book = new AddressBook (Activity) {PreferContactAggregation = true};
var contData = data.Data;
var cur = Activity.ManagedQuery (contData, null, null, null, null);
Contact myContact = null;
var lookupKeyList = new List<string> ();
while (cur.MoveToNext ()) {
lookupKeyList.Add (cur.GetString (cur.GetColumnIndexContactsContract.Contacts.InterfaceConsts.LookupKey)));
}
myContact = book.Where (c => c.Id == lookupKeyList [0]).First ();
此代码是从电话簿中选择联系人并接收OnActivityResult方法数据的一部分。 不幸的是,这段代码在某些设备上花费了太多时间,而在其他设备上则是即时的。我猜它与Contact Aggregation有关,但我不确定。有什么指针吗?
答案 0 :(得分:0)
听起来像Android问题,不一定是Xamarin问题。看一下问题Getting name and email from contact list is very slow。这个答案之一就是在查询中使用Projection一次性获取所有列。