我創建了ContentProvider,它是另一個ContentProvider的代理(用於安全問題並提供對完整應用功能的部分訪問)。光標在ContentProvider中環繞/解包
public class GFContactsProvider extends ContactsProvider implements
DatabaseConstants {
private Context mContext;
private ContentResolver mContentResolver;
@Override
public boolean onCreate() {
mContext = getContext();
mContentResolver = mContext.getContentResolver();
}
@Override
public Cursor query(Uri uri, String[] projection, String selection,
String[] selectionArgs, String sortOrder) {
Cursor result = mContentResolver.query(ContactsContract.getContactsURI(Long.parseLong(address.get(1))), null, null, null, ContactsContract.ContactColumns.SHOW_NAME);
return result;
}
}
從我的CP調用內CP之後,我recive意外的異常:
java.lang.UnsupportedOperationException: Only CrossProcessCursor cursors are supported across process for now
異常由CP涉及光標的包裝和傳遞它包裹,外CP不能再次把它包裝所以我在這裏遇到問題。當我檢查返回的遊標類時,我收到CursorWrapperInner。是否有任何方法可以在我的外部CP中展開光標(從此CWI到常規光標)(但不是通過在循環中將所有數據傳輸到MatrixCursor - 這太耗時)。