我正在使用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方法接收数据的一部分。不幸的是,这个代码在一些设备上占用了太多的时间,而在另一些设备上是即时的。我猜这与联系人聚合有关,但我不确定。有什么建议吗?
发布于 2013-12-17 11:13:53
听起来像是Android的问题,不一定是Xamarin的问题。看一下问题Getting name and email from contact list is very slow。这个答案做的其中一件事是在查询中使用投影来一次性获得所有列。
https://stackoverflow.com/questions/20614938
复制相似问题