2012-01-19 11 views
8

वर्तमान में, मैं एचटीपी कनेक्शन को संभालने और जेएसओएन प्रारूप के रूप में डेटा पुनर्प्राप्त करने के लिए AsyncTask का उपयोग कर रहा हूं।
सभी डेटा लोड करना मामूली है लेकिन यह बहुत अधिक समय लेता है, इसलिए मैंने LIMIT OFFSET (mysql) का उपयोग कर एक समय में 10 आइटम लोड करने के लिए स्विच करने का निर्णय लिया।
अगला मैंने प्रत्येक बार उपयोगकर्ता स्क्रॉल को नया AsyncTask बनाने के लिए अपनी सूची दृश्य के लिए ईवेंट onScroll सेट अप किया। हालांकि, मैंने जो पढ़ा है, उससे AsyncTask एक थ्रेड पूल में संग्रहीत है जो एक समय में 5 धागे सीमित है, इसलिए मुझे यकीन नहीं है कि यह एक सही दृष्टिकोण है। मैं क्लाइंट/सर्वर एप के लिए नौसिखिया हूँ, तो क्या कोई मुझे इस मुद्दे पर सलाह दे सकता है? कोई भी संबंधित लेख, दस्तावेज़ीकरण की सराहना की जाएगी।एंड्रॉइड में सर्वर से डेटा पुनर्प्राप्त करते समय स्क्रॉलिंग पर ListView को कैसे अपडेट करें?

उत्तर

12

यहाँ इसके लिए कुछ उपयोगी लिंक कर रहे हैं,

Android: Implementing progressbar and "loading..." for Endless List like Android Market

Endless Listview with current Async Task

Android Endless List

http://www.androidguys.com/2009/10/21/tutorial-autogrowing-listview/

http://mylifewithandroid.blogspot.com/2010/03/progressively-loading-listviews.html

आसान चरणों में,

उपयोगकर्ता स्क्रॉल के रूप में - सूची
1) के अंत का पता लगाने के एक प्रगति अधिसूचना
2) अद्यतन
3 के लिए पूछें प्रदर्शित करें) अद्यतन (अतुल्यकालिक रूप से प्राप्त करें) और सूची

का विस्तार
+0

अद्भुत सूची! बहुत बहुत धन्यवाद। – Cathy

+0

हमेशा मेरे दोस्त का स्वागत करते हैं !! –

2

यदि आप ListView का उपयोग कर रहे हैं, तो मेरा मानना ​​है कि मैं सुरक्षित रूप से मान सकता हूं कि आपको ListAdapter का उपयोग करना चाहिए। onScroll ईवेंट में नया AsyncTask शुरू करने के बजाय, आपको सर्वर से डेटा पुनर्प्राप्त करने के लिए केवल एक एकल AsyncTask बनाए रखना चाहिए, उस डेटा को ListAdapter डेटासेट में जोड़ें और फिर पर notifyDatasetChanged पर कॉल करें।

ListAdapter और ListView बाकी का ख्याल रखेगा।

2

एक सामान्य दृष्टिकोण उदा। प्रारंभ में 25 लोड करने के लिए और उसके बाद सूची में एक पाद लेख है जो उदा। वर्तमान गिनती और कुल गिनती और दबाने पर दबाव 25 और इसी तरह से होता है। यह लोडिंग का एक पेजेड प्रकार होगा।

जब आप ऐसा करते हैं तो आपको वर्तमान स्थिति रखना होगा और एडाप्टर को सूचित करना होगा कि सूची बदल गई है।

संबंधित मुद्दे