小编Viv*_*viQ的帖子

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;
     }
    }
Run Code Online (Sandbox Code Playgroud)

从我的CP调用内部CP后,我发现意外的异常:

java.lang.UnsupportedOperationException: Only CrossProcessCursor cursors are supported across process for now
Run Code Online (Sandbox Code Playgroud)

例外涉及由CP包裹Cursor并将其传输包裹,外部CP不能再包装它,所以我在这里遇到问题.当我检查返回游标的类时,我收到了CursorWrapperInner.有没有办法在我的外部CP中打开游标(从这个CWI到常规Cursor)(但不是通过循环将所有数据传输到MatrixCursor - 这太费时了).

android cursor android-contentprovider

18
推荐指数
1
解决办法
3766
查看次数

标签 统计

android ×1

android-contentprovider ×1

cursor ×1