获取未读短信计数的更快方法?

Posted

技术标签:

【中文标题】获取未读短信计数的更快方法?【英文标题】:A faster way of getting unread SMS count? 【发布时间】:2012-02-09 19:24:07 【问题描述】:
String address = 0123456789;

Cursor unreadcountcursor = getContentResolver().query(Uri.parse("content://sms/inbox"),
new String[], "read = 0 and address='"+address+"'", null, null);

int count = unreadcountcursor.getCount();

没有更快的获取方式吗?因为当您必须对许多数字进行计数时,此代码执行起来非常繁重,因此加载需要很长时间。有没有另一种方法,假设这段代码将在一个while循环中。我知道在适配器中使用它更快且可行,但适配器的问题是我必须滚动列表并返回计数以获取更新,并且 notifyDataSetChanged() 对此没有任何作用。

最好的解决方案是什么?

谢谢。

【问题讨论】:

【参考方案1】:

我不确定这是否会节省很多设备时间,但您的时间 - 肯定是:

 Cursor countCursor = getContentResolver().query(CONTENT_URI,
                "count(*) AS count",
                null,
                null,
                null);

        countCursor.moveToFirst();
        int count = countCursor.getInt(0);

引用自here

【讨论】:

不,这个问题听起来很有趣,我确信可能有计数的查询,我真的在网上找到了。就是这样。

以上是关于获取未读短信计数的更快方法?的主要内容,如果未能解决你的问题,请参考以下文章

Quickblox 中公共对话的未读计数

根据ios中的未读消息更新应用图标的徽章计数

Cassandra 未读消息计数

在 quickblox 中未收到未读消息计数

XMPP 上的未读消息计数

TideSDK - 显示未读计数(图标徽章)