当前位置:  开发笔记 > 数据库 > 正文

如何在我的内容提供商中获得_count?

如何解决《如何在我的内容提供商中获得_count?》经验,为你挑选了2个好方法。

我该怎么做才能让我的内容提供商返回带有记录数的_count列?文档说这是自动的,但也许它只涉及一些内置的内容提供者.对数据库运行查询似乎不会返回它.



1> saurabh..:

如果您正在使用contentProvider,那么您必须这样做count(*) AS count.

如果使用cursor.getCount(),那将不如上述方法有效.随着cursor.getCount()你获取所有记录只是为了获得计数.整个代码应如下所示 -

 Cursor countCursor = getContentResolver().query(CONTENT_URI,
                new String[] {"count(*) AS count"},
                null,
                null,
                null);

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

这有效的原因是因为android需要定义列名.


无法保证您的contentprovider由sql数据库支持.

2> Will..:

如果您使用ContentProvider.query()Cursor是退货.调用Cursor.getCount()以获取返回游标中的记录数.


这个问题是它实际上执行查询并为记录等分配内存.如果SQL语句"SELECT COUNT(*)FROM TABLE",有一种更好的计数方法...我会继续寻找对于这个替代答案.
您可以在不获取所有记录的情况下获取计数.从我这里看到以下答案..
推荐阅读
路人甲
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有