我正在尝试在“活动”之外查询“联系人”内容提供商。但是,managedQuery是一种Activity的方法。我可以使用其他类/方法而不是managedQuery吗?
这是我的代码:
class MyActivity extends Activity {
private Cursor getContacts() {
Uri uri = ContactsContract.Contacts.CONTENT_URI;
String[] projection = new String[] { ContactsContract.Contacts._ID,
ContactsContract.Contacts.DISPLAY_NAME,
ContactsContract.Contacts.HAS_PHONE_NUMBER };
String where = null;
String[] whereArgs = null;
String sortOrder = ContactsContract.Contacts.DISPLAY_NAME
+ " COLLATE LOCALIZED ASC";
return context.managedQuery(uri, projection, where, whereArgs, sortOrder);
}
}
答案 0 :(得分:8)
(调用Context.getContentResolver()获取ContentResolver的实例。无论如何你都需要一个Context,但它不一定是Acitivity)
Activity.managedQuery()负责处理与Cursor相关的Activity生命周期。 ContentResolver.query()不会这样做,因此您必须确保自己关闭并重新查询光标等。