共计 1220 个字符,预计需要花费 4 分钟才能阅读完成。
MediaStore 含糊查问、分页、排序
安卓 10 以上就有了分区存储的概念,相干的查问就有了一些扭转,上面咱们介绍一下
MediaStore
常常应用的查问。
罕用的查问项:
QUERY_ARG_LIMIT
:查问条数QUERY_ARG_OFFSET
:数据偏移量QUERY_ARG_SORT_DIRECTION
:排序方向,也就是正序还是倒序QUERY_ARG_SORT_COLUMNS
:排序字段QUERY_ARG_SQL_SELECTION
:where 语句
理论例子,page 和 limit 须要全局定义
// 须要查问的资源
Uri uri = MediaStore.Files.getContentUri("external");
// 须要查问的字段,依据 display_name 含糊查问,size 大于 0 的,date_modified 倒序
String[] columns = {
MediaStore.Files.FileColumns.DISPLAY_NAME,
MediaStore.Files.FileColumns.SIZE,
MediaStore.Files.FileColumns.DATE_MODIFIED
};
// where 条件
String where = "(_display_name like'%.png'or _display_name like'%.jpg') and _size > 0";
// 组装查问
Bundle select = new Bundle();
// 偏移量,也就是从第几条开始查问 page 是页码,limit 是每页数量,依据逻辑自行批改
int start = (page - 1) * limit;
select.putInt(ContentResolver.QUERY_ARG_LIMIT, limit);
select.putInt(ContentResolver.QUERY_ARG_OFFSET, start);
// 排序方向,倒序
select.putInt(ContentResolver.QUERY_ARG_SORT_DIRECTION, ContentResolver.QUERY_SORT_DIRECTION_DESCENDING);
select.putStringArray(ContentResolver.QUERY_ARG_SORT_COLUMNS, new String[]{MediaStore.Files.FileColumns.DATE_MODIFIED});
// where 条件
select.putString(ContentResolver.QUERY_ARG_SQL_SELECTION, where.toString());
// 这个 query 办法参数是 4 个
Cursor cursor = getActivity().getContentResolver().query(uri, columns, select, null);
// 查问到此结束,而后就能够依据本人的逻辑进行操作了
正文完