获取未读短信的更快方法是什么?

时间:2012-01-13 15:43:34

标签: java android

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 个答案:

答案 0 :(得分:1)

我不确定这会耗费大量的设备时间,而是你的设备时间 - 绝对是:

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

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

引自here