[Android]ContentProvider会用到的ProjectionMap的用处

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 mProjectionMap中,通过setProjectionMap()来设置
合法性检查在SQLiteQueryBuilder.buildQuery() –>computeProjection()
如果不合法,则会抛出exception –java.lang.IllegalArgumentException

你可能感兴趣的:([Android]ContentProvider会用到的ProjectionMap的用处)