ProjectionMap的用处
在Contentprovider中,一般需要定义database,要定义Table, 也要定义各种字段 在定义字段的时候,可以把这些字段存到一个Map里,也就是ProjectionMap中, 在调用者以ContentResolver query()方式传入 String[] projection时,就可以对它进行检查,是否传入字段合法? public final Cursor query (Uri uri, String[] projection, String selection, String[] selectionArgs, String sortOrder)
ProjectionMap 具体是保存在SQLiteQueryBuilder的private Map<String, String> mProjectionMap中,通过setProjectionMap()来设置 合法性检查在SQLiteQueryBuilder.buildQuery() -->computeProjection() 如果不合法,则会抛出exception --java.lang.IllegalArgumentException