मुझे इसे संभालने का एक तरीका मिला और मैं उन सभी के साथ साझा करना चाहता हूं जिन्हें इसकी आवश्यकता है।
int limit = 0;
while (limit + 100 < numberOfRows) {
//Compose the statement
String statement = "SELECT * FROM Table ORDER someField LIMIT '"+ limit+"', 100";
//Execute the query
Cursor cursor = myDataBase.rawQuery(statement, null);
while (cursor.moveToNext()) {
Product product = new Product();
product.setAllValuesFromCursor(cursor);
productsArrayList.add(product);
}
cursor.close();
limit += 100;
}
//Compose the statement
String statement = "SELECT * FROM Table ORDER someField LIMIT '"+ (numberOfRows - limit)+"', 100";
//Execute the query
Cursor cursor = myDataBase.rawQuery(statement, null);
while (cursor.moveToNext()) {
Product product = new Product();
product.setAllValuesFromCursor(cursor);
productsArrayList.add(product);
}
cursor.close();
मुख्य विचार आपके डेटा को विभाजित करना है, ताकि आप कर्सर का उपयोग कर सकें क्योंकि इसका उपयोग किया जाना चाहिए। यदि आपने तालिकाबद्ध किया है तो यह 5k पंक्तियों के लिए 2 एस के तहत काम कर रहा है।
धन्यवाद, Arkde
हाँ मैं एक ही समय में इन सभी पंक्तियों, के बाद से मैं उन्हें एक ArrayList को भरने के लिए और सूचीदृश्य के लिए अनुकूलक में संग्रहीत की जरूरत की जरूरत है। और समस्याएं कर्सर में संग्रहीत वस्तुओं के आकार के साथ होती हैं, पंक्तियों की संख्या के साथ नहीं (आपके सुझाए गए लिंक में दिए गए प्रश्न में, पंक्तियों की संख्या में कोई समस्या है) – Arkde
सीमा कुल डेटा पर लागू होती है, भले ही सीमा यह बड़ी संख्या में पंक्तियों या वास्तव में बड़े कॉलम या कई स्तंभों के कारण हो सकता है। मैं किसी भी विकल्प के बारे में नहीं जानता लेकिन किसी भी तरह से अपने डेटा को कॉम्पैक्ट करने के लिए। – Sid
कोई विचार मैं अपने डेटा को कैसे कॉम्पैक्ट कर सकता हूं? मैंने उन्हें स्टोर करने के लिए स्ट्रिंग का उपयोग किया, क्योंकि स्ट्रिंग का आकार इसके अंदर वर्णों की संख्या के साथ बढ़ता है ...मैं इसे अनुकूलित करने के किसी अन्य तरीके से नहीं जानता। – Arkde