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()并没有为此做任何事情。
什么是最好的解决方案?
感谢。
答案 0 :(得分:1)
我不确定这会耗费大量的设备时间,而是你的设备时间 - 绝对是:
Cursor countCursor = getContentResolver().query(CONTENT_URI,
"count(*) AS count",
null,
null,
null);
countCursor.moveToFirst();
int count = countCursor.getInt(0);
引自here