Android: cursor.getCount()
Frage ich mich, ob es irgendeine alternative für cursor.getCount (), die ist viel zu teuer! Mein Ziel ist, führen Sie eine Abfrage zuerst, wenn cursor ist null oder cursor.getCount() <=0 ist, dann werde ich brauchen, um ausführen einer anderen Abfrage.
Aber da die zugrunde liegenden Daten kann sehr groß sein, ich war immer Anwendung Nicht mehr Reagiert, für den getCount () - Aufruf. eine bessere Lösung ist es zu tun?
InformationsquelleAutor Green Ho | 2013-08-09
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wenn der cursor leer ist, moveToFirst false
Nein, es sollte nicht
Danke! Ich werde give it a shot!
und
moveToFirst()
schließlich fordertcursor.getCount()
. stackoverflow.com/a/25119511/609782InformationsquelleAutor Hoan Nguyen
Wenn Sie nur daran interessiert, herauszufinden, ob die Tabelle keine Zeilen überhaupt, dann eine sehr optimale Abfrage wäre:
Diese scannt nicht die gesamte Tabelle, im Gegensatz zu
count()
, und es führen in weniger als zwei Millisekunden für eine Tabelle mit 250.000+ records auf einem iPhone, so ist es definitiv skaliert mit der Größe.die Anzahl der cursor für diese Abfrage wird immer 1 sein. Es ergeben genau eine Zeile mit einem Wert von entweder 0 oder 1. 0 bedeutet, dass keine übereinstimmenden Zeilen gefunden wurden. 1 bedeutet, dass mindestens eine übereinstimmende Zeile gefunden wurde.
InformationsquelleAutor Anurag
Ausführen der ersten Abfrage mit begrenzten Bereichen. Zum Beispiel, die erste Abfrage kann nur für _id.
Sie können eine Abfrage ausführen, um nur die 1. Zeile mit "where" - Klausel; "_id = 0", es erscheint nur die erste Zeile.
InformationsquelleAutor codeFood
Ist es sehr schwierig, zu vermeiden, mit die
Cursor.getCount()
, weil die meisten (wenn nicht alle?) dieCursor
Methoden schließlich nennen Sie es. Finden Sie die Quelle code für dich.Vielleicht versuchen Sie es mit der
limit
- Klausel in der Abfrage und setzen Sie das limit auf 1, dann die überprüfung der cursor zurückgegeben von der Abfrage, um zu sehen, ob es leer ist oder nicht?InformationsquelleAutor Eric