游标加载器查询联系人详细信息无法正确检测到更改
cursor loader query contact detail can't correctly detect the changes
我参考了此 link android 开发人员培训以实施使用选择标准检索联系人详细信息
/*
* Defines the selection clause. Search for a lookup key
* and the Email MIME type
*/
private static final String SELECTION =
Data.LOOKUP_KEY + " = ?" +
" AND " +
Data.MIMETYPE + " = " +
"'" + Email.CONTENT_ITEM_TYPE + "'";
@Override
public Loader<Cursor> onCreateLoader(int loaderId, Bundle args) {
// Choose the proper action
switch (loaderId) {
case DETAILS_QUERY_ID:
// Assigns the selection parameter
mSelectionArgs[0] = mLookupKey;
// Starts the query
CursorLoader mLoader =
new CursorLoader(
getActivity(),
Data.CONTENT_URI,
PROJECTION,
SELECTION,
mSelectionArgs,
SORT_ORDER
);
...
}
例如,何时更改联系人姓名。然后在一种情况下,当我们的应用程序添加联系人时,光标加载器无法正确检测到更改。我检查了查找键,添加的联系人键与其他键不同(例如:Orod-1340xxxxxxxx)。
搜索讨论后,查找键可能会发生变化,建议使用带有查找键的联系人查找 uri。但是在上面的查询中不能使用查找 uri。我需要在 Data table 中查询详细信息。
我怎样才能做到这一点?
非常感谢。
尝试使用 CONTACT_ID
而不是 LOOKUP_KEY
。
private static final String SELECTION =
Data.CONTACT_ID + " = ? AND " +
Data.MIMETYPE + " = '" + Email.CONTENT_ITEM_TYPE + "'";
您可能会偶然发现不要使用联系人 ID 而是使用查找键或查找 uris 的警告,但如果您的应用程序当前已启动并且 运行,最近刚查询了这个contact-id,使用它是非常安全和可以的,为此目的使用contact-id更好,因为它作为一个独立的id更稳定。
查看更多信息here and
我参考了此 link android 开发人员培训以实施使用选择标准检索联系人详细信息
/*
* Defines the selection clause. Search for a lookup key
* and the Email MIME type
*/
private static final String SELECTION =
Data.LOOKUP_KEY + " = ?" +
" AND " +
Data.MIMETYPE + " = " +
"'" + Email.CONTENT_ITEM_TYPE + "'";
@Override
public Loader<Cursor> onCreateLoader(int loaderId, Bundle args) {
// Choose the proper action
switch (loaderId) {
case DETAILS_QUERY_ID:
// Assigns the selection parameter
mSelectionArgs[0] = mLookupKey;
// Starts the query
CursorLoader mLoader =
new CursorLoader(
getActivity(),
Data.CONTENT_URI,
PROJECTION,
SELECTION,
mSelectionArgs,
SORT_ORDER
);
...
}
例如,何时更改联系人姓名。然后在一种情况下,当我们的应用程序添加联系人时,光标加载器无法正确检测到更改。我检查了查找键,添加的联系人键与其他键不同(例如:Orod-1340xxxxxxxx)。
搜索讨论后,查找键可能会发生变化,建议使用带有查找键的联系人查找 uri。但是在上面的查询中不能使用查找 uri。我需要在 Data table 中查询详细信息。
我怎样才能做到这一点? 非常感谢。
尝试使用 CONTACT_ID
而不是 LOOKUP_KEY
。
private static final String SELECTION =
Data.CONTACT_ID + " = ? AND " +
Data.MIMETYPE + " = '" + Email.CONTENT_ITEM_TYPE + "'";
您可能会偶然发现不要使用联系人 ID 而是使用查找键或查找 uris 的警告,但如果您的应用程序当前已启动并且 运行,最近刚查询了这个contact-id,使用它是非常安全和可以的,为此目的使用contact-id更好,因为它作为一个独立的id更稳定。
查看更多信息here and