1

我正在使用适用于 Android 的 Xamarin.Mobile 组件来使用以下代码获取联系人:

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 方法上接收数据的一部分。不幸的是,这段代码在某些设备上占用了太多时间,而在其他设备上却是即时的。我猜它与联系人聚合有关,但我不确定。任何指针?

4

1 回答 1

0

听起来像是 Android 问题,不一定是 Xamarin 问题。看看从联系人列表中获取姓名和电子邮件的问题非常慢。这个答案所做的一件事是在查询中使用投影来一次性获取所有列。

于 2013-12-17T03:13:52.927 回答