android获取联系人详细信息,例如数字和缩略图

阿德南·阿卜杜拉·扎基

我使用此代码可以获取联系人的电话号码和联系人的缩略图,但这不合适,并且加载和准备联系人的时间很长。

请帮助我提高此代码的性能:

List<Contact_Pojo> list = new ArrayList<Contact_Pojo>();
ContentResolver cr = getActivity().getContentResolver();
Cursor cur = cr.query(ContactsContract.Contacts.CONTENT_URI, null,
        null, null, Phone.DISPLAY_NAME + " ASC");

int i = 0;
if (cur.moveToFirst()) {
    while (cur.moveToNext()) {

        Cursor phoneCursor = getActivity()
                .getContentResolver()
                .query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI,
                        new String[] { ContactsContract.CommonDataKinds.Phone.NUMBER, },
                        ContactsContract.CommonDataKinds.Phone.CONTACT_ID
                                + " = ?",
                        new String[] { cur.getString(cur
                                .getColumnIndex(ContactsContract.Contacts._ID)) },
                        null);

        if (phoneCursor.moveToFirst()) {
            Contact_Pojo personContact = new Contact_Pojo();
            /*
             * Id
             */
            personContact.setId(cur.getString(1));
            /*
             * Name
             */
            personContact
                    .setName(cur.getString(cur
                            .getColumnIndex(ContactsContract.Contacts.DISPLAY_NAME)));
            /*
             * Photo ID
             */
            personContact
                    .setImageUrl(cur.getString(cur
                            .getColumnIndex(ContactsContract.Contacts.PHOTO_THUMBNAIL_URI)));
            /*
             * Number
             */
            personContact.setNumber(phoneCursor.getString(0));
            //
            list.add(personContact);
        }

        phoneCursor.close();

    }
}

cur.close();
return list;

2015年4月4日更新

  • 这是缓慢的,因为它已从联系人提供者获取所有列,该表中的+20列需要很多时间。
Seho Noh

如何使用AsyncTaskLoader,

要获取联系人列表时,请编写此代码

getLoaderManager() or getSupportLoaderManager().initLoader(int id, Bundle args, LoaderManager.LoaderCallbacks<D> loadingCallback)

public class LoadingCallback implements LoaderManager.LoaderCallbacks<Void> {
  @Override
  public Loader<Void> onCreateLoader(int i, Bundle bundle) {
    // Show your dialog;
    return new InitializeContactsTask(context, (ArrayList) contactList, mAdapter);
  }

  @Override
  public void onLoadFinished(Loader<Void> voidLoader, Void aVoid) {
    // UI Work here after background task and hide dialog.
  }

  @Override
  public void onLoaderReset(Loader<Void> voidLoader) {
  }
}

public class InitializeApplicationsTask extends AsyncTaskLoader<Void> {
  @Override
  protected void onStartLoading() {
      forceLoad();
  }

  @Override
  public Void loadInBackground() {
      // Query the contacts here and return null

      return null;
  }
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

从android中的联系人获取地址详细信息

来自分类Dev

获取原始联系人缩略图

来自分类Dev

如何在android中启动目录联系人的联系人详细信息活动

来自分类Dev

Android:从姓名首字母创建联系人缩略图

来自分类Dev

当我尝试从SMS消息(Android光标)获取联系人或照片详细信息时,总是返回NULL

来自分类Dev

从Android手机的联系人列表中检索指定号码的组织详细信息和电子邮件详细信息?

来自分类Dev

从联系人列表中填充用户详细信息

来自分类Dev

iOS联系人详细信息选择

来自分类Dev

如何获取联系人详细信息中的电子邮件地址

来自分类Dev

如何调用系统应用程序以获取联系人的详细信息

来自分类Dev

使用集合选择从联系人ID检索联系人详细信息

来自分类Dev

Android:如何向联系人详细信息添加自定义字段/操作

来自分类Dev

如何在响应式Google Map旁边添加联系人详细信息

来自分类Dev

使用Swift在iOS中访问联系人详细信息

来自分类Dev

如何实现联系人详细信息屏幕(如棒棒糖)

来自分类Dev

如何防止Windows 10与联系人共享wifi详细信息?

来自分类Dev

在ios(通讯簿)中禁用联系人详细信息视图

来自分类Dev

使用列表框中的联系人详细信息更新文本框

来自分类Dev

如何在响应式Google Map旁边添加联系人详细信息

来自分类Dev

根据类型将联系人详细信息分组到 SQL 中的单独列中

来自分类Dev

Android:从Blobstore图片获取缩略图

来自分类Dev

从MediaStore获取全屏缩略图-Android

来自分类Dev

更新Android中联系人的信息

来自分类Dev

搜索联系人并从android中的电话联系人获取联系人号码

来自分类Dev

从 solr 建议器返回价格和缩略图信息

来自分类Dev

保存Android联系人后获取联系人ID

来自分类Dev

保存Android联系人后获取联系人ID

来自分类Dev

Youtube获取缩略图

来自分类Dev

Youtube获取缩略图

Related 相关文章

  1. 1

    从android中的联系人获取地址详细信息

  2. 2

    获取原始联系人缩略图

  3. 3

    如何在android中启动目录联系人的联系人详细信息活动

  4. 4

    Android:从姓名首字母创建联系人缩略图

  5. 5

    当我尝试从SMS消息(Android光标)获取联系人或照片详细信息时,总是返回NULL

  6. 6

    从Android手机的联系人列表中检索指定号码的组织详细信息和电子邮件详细信息?

  7. 7

    从联系人列表中填充用户详细信息

  8. 8

    iOS联系人详细信息选择

  9. 9

    如何获取联系人详细信息中的电子邮件地址

  10. 10

    如何调用系统应用程序以获取联系人的详细信息

  11. 11

    使用集合选择从联系人ID检索联系人详细信息

  12. 12

    Android:如何向联系人详细信息添加自定义字段/操作

  13. 13

    如何在响应式Google Map旁边添加联系人详细信息

  14. 14

    使用Swift在iOS中访问联系人详细信息

  15. 15

    如何实现联系人详细信息屏幕(如棒棒糖)

  16. 16

    如何防止Windows 10与联系人共享wifi详细信息?

  17. 17

    在ios(通讯簿)中禁用联系人详细信息视图

  18. 18

    使用列表框中的联系人详细信息更新文本框

  19. 19

    如何在响应式Google Map旁边添加联系人详细信息

  20. 20

    根据类型将联系人详细信息分组到 SQL 中的单独列中

  21. 21

    Android:从Blobstore图片获取缩略图

  22. 22

    从MediaStore获取全屏缩略图-Android

  23. 23

    更新Android中联系人的信息

  24. 24

    搜索联系人并从android中的电话联系人获取联系人号码

  25. 25

    从 solr 建议器返回价格和缩略图信息

  26. 26

    保存Android联系人后获取联系人ID

  27. 27

    保存Android联系人后获取联系人ID

  28. 28

    Youtube获取缩略图

  29. 29

    Youtube获取缩略图

热门标签

归档