在 SMS Content Provider 中限制和抵消查询结果

Limiting and offsetting query result in SMS Content Provider

我正在开发一个消息传递应用程序,我想限制来自 SMS 内容提供商的结果数量,以便我可以实现无限滚动(在滚动时加载更多数据而不是一次加载整个对话)。

有什么方法可以 select 来自 SMS 内容提供商的前 50 个对话,然后从给定点 select 50 个对话?

Cursor cur;
ContentResolver contentResolver = getContentResolver();
final String[] projection = new String[]{"*"};
Uri uriSMSURI = Uri.parse("content://mms-sms/conversations/");

cur = contentResolver.query(uriSMSURI, projection,
    null, null, " date DESC");

在最后一个参数中指定 limit 50

cur = contentResolver.query(uriSMSURI, projection, null, null, " date DESC limit 50");

如果你想获得第 i 个 "page",意思是偏移 i 次 50 :

...," date DESC limit 50 offset "+i);

(我假设 i 是您保存要加载的块的索引的变量)