2011-04-08 13 views
6

मेरे पास एक सूचीदृश्य है जिसमें 100 पंक्तियां हैं। यह पहली बार है जब मैं किसी वेबसाइट सेवा से सभी डेटा लोड करता हूं। मैं उस डेटा को कैश करना चाहता हूं ताकि अगर मैं उस पृष्ठ को खोलूं तो मुझे इसे वेबसाइट से नहीं बल्कि कैश से प्राप्त करना चाहिए। मैं यह कैसे कर सकता हूँ?एंड्रॉइड में सूचीदृश्य डेटा कैश कैसे करें?

+0

इस उदाहरण का उपयोग करें, मैं अभी इसे काम कर रहा हूं। इस सवाल को देखें। [http://stackoverflow.com/questions/15154164/in-android-how-to-implement-cache-in-listview][1] [1]: http: // stackoverflow। कॉम/प्रश्न/15154164/इन-एंड्रॉइड-कैसे-टू-कार्यान्वयन-कैश-इन-लिस्टव्यू – jithu

उत्तर

3

अपने वेब सेवा बुला अपने डेटा काफी सरल है की डिकोड, बस उन्हें एक सरणी में स्टोर करें और सूची दृश्य में डेटा को बाध्य करने के लिए ArrayAdapter जैसे कुछ का उपयोग करें।

यदि आपका डेटा अधिक जटिल है, तो SQLite तालिका शायद बेहतर है। इस मामले में SimpleCursorAdapter जैसे कुछ का उपयोग करें।

1

एक SQLite तालिका में अपने डेटा को सेव करें और उपयोग करें कि के रूप में कैश अगली बार जाँच लें कि तालिका मौजूद रहने पर। यदि तालिका क्वेरी मौजूद है कि वेबज़ के स्थिर में :-)

1

आप अपने एप्लिकेशन के internal storage space में डेटा को JSON फ़ाइल के रूप में संग्रहीत कर सकते हैं। मुझे लगता है कि यह एक बहुत ही आसान तरीका है, क्योंकि आप Gson जैसी लाइब्रेरी का उपयोग करके JSON को मॉडल कक्षाओं में आसानी से मानचित्र कर सकते हैं। यदि आपके पास मौजूद डेटा "पारंपरिक" में नहीं हो सकता है, तो आप आम तौर पर इस दृष्टिकोण का पालन करेंगे यदि आप पारंपरिक डेटाबेस में कर सकते हैं (हालांकि आप अभी भी अपने JSON डेटा को अपडेट करने में सक्षम हैं)। जब से तुम अवधि कैश का उपयोग

+0

मैं जानना चाहता हूं कि आंतरिक स्टोरेज पहुंच योग्य नहीं है, भले ही फ़ोन रूट हो? – ingsaurabh

+0

आंतरिक संग्रहण हमेशा उपलब्ध होना चाहिए, जब तक आपके पास – binnyb

+0

कोई स्थान नहीं है, माफ करना, मैं वास्तव में डॉक्स में यह नहीं लिख रहा हूं कि आंतरिक भंडारण में अन्य ऐप्स के लिए पहुंच योग्य नहीं है और यहां तक ​​कि उपयोगकर्ता भी जानना चाहता हूं कि यह स्थिति सच है या नहीं फोन भी जड़ है? – ingsaurabh

0

im संभालने - डेटा हर एक्स मिनट/घंटे

डेटा को परिवर्तित करता है हर कुछ मिनट बस कुछ स्थानीय चर में अपने वेब सेवा प्रतिक्रिया को बचाने (यदि यह केवल के लिए इस्तेमाल किए जाने की आवश्यकता समाप्त हो रहा है एक भी सूचीदृश्य गतिविधि)

या वैश्विक चर में सहेजें (आवेदन वर्ग का विस्तार करने और यहां से एक सार्वजनिक चर का पर्दाफाश)

अपने डेटा हर कुछ घंटों को परिवर्तित करता है तो एक बेहतर विचार SQLite में सहेजने के लिए है (यदि आपके डेटा को जटिल पूछताछ/जॉइन इत्यादि की आवश्यकता है)

या बस एक फ़ाइल के रूप में सहेज (या तो JSON या XML स्वरूप में) और इस फाइल को और समाप्ति के लिए जाँच करें और यदि अभी भी मान्य बस इसे बजाय फिर से

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