2011-09-15 16 views
18

मेरा ऐप सभी सेटिंग्स को स्टोर करने के लिए साझा किए गए संदर्भ (प्राथमिकता की सहायता से) का उपयोग करता है। लेकिन कभी-कभी सभी सेटिंग्स हटा दी जाती हैं और सभी मान डिफ़ॉल्ट पर वापस सेट होते हैं। अधिकतर एंड्रॉइड 3.x टैब पर। सामान्य स्मार्टफ़ोन पर कोई समस्या नहीं है।साझा किए गए संदर्भ कभी-कभी हटा दिए जाते हैं

मैंने देखा है कि एंड्रॉइड द्वारा एप्लिकेशन प्रक्रिया को मारने पर सभी सेटिंग्स हटा दी जाती हैं। मैंने यह देखा क्योंकि अधिसूचना आइकन अब प्रदर्शित नहीं हुआ है। मुझे यह भी आश्चर्य है कि क्यों टैबलेट पर प्रक्रिया मारे गए हैं, स्मार्टफोन पर नहीं। मेरे स्मार्टफ़ोन पर अधिसूचना आइकन कभी गायब नहीं होता है।

मेरे ऐप में भी एक सेवा है, मुख्य प्रक्रिया और सेवा दोनों SharePreferences को सेटिंग्स को पढ़ और लिखते हैं। मैंने कभी-कभी देखा है कि सेवा साझा किए गए संदर्भों को लिखने के बाद सभी सेटिंग्स साफ़ हो जाती हैं। लेकिन यह हर बार नहीं होता है।

कोई विचार? मुझे एहसास है कि साझा प्रक्रियाओं को विभिन्न प्रक्रियाओं द्वारा उपयोग नहीं किया जाना चाहिए, लेकिन यह बिना किसी समस्या के सभी स्मार्टफ़ोन पर काम करता है!

+0

अंतिम वाक्य के लिए: गतिविधि और सेवा दोनों एक ही प्रक्रिया में चलते हैं। वे एक ही आवेदन के बस अलग घटक हैं। –

+0

मैंने देखा है कि कुछ फोन पर साझा किए गए साझाकरण भी हटा दिए जा रहे हैं। मैं 100% कम करने में सक्षम नहीं हूं जो इसका कारण बन रहा है। लेकिन मैं सिर्फ एक नए डेटा स्टोरेज मॉडल पर एक संभावित फिक्स के रूप में स्विच कर रहा हूं। – FoamyGuy

+0

@mice: क्या आप निश्चित हैं? क्योंकि लॉगकैट में उनके पास अलग-अलग पिड (प्रक्रिया आईडी) – almisoft

उत्तर

2

साझाकरण आमतौर पर बहुत अच्छा काम करते हैं और जैसा कि आपने स्मार्टफ़ोन पर किसी भी समस्या के बिना उल्लेख किया है। इसे गोलियों पर भी काम करना चाहिए। हालांकि प्रत्येक उपयोगकर्ता आईडी डेटा हानि एक समस्या के लिए सर्वर पर अपने साझा किए गए prefs का उपयोग करना या SQL पर उपयोग करना सबसे अच्छा होगा।

+0

आपके त्वरित एन्सर के लिए बहुत बहुत धन्यवाद।लेकिन यह सिर्फ एक कामकाज है। और यह मेरी वरीयता सक्रियता के लिए लागू नहीं है, क्योंकि यह गतिविधि केवल साझा किए गए शेयरों को काम करती है ... – almisoft

19

मुझे पता चला कि सेटिंग्स गायब क्यों हुईं: यदि दो प्रक्रियाएं साझा किए गए संदर्भों को डेटा लिखती हैं, तो ऐसा हो सकता है कि सभी साझा किए गए संदर्भ डिफ़ॉल्ट मानों पर रीसेट हो जाएं। मेरे मामले में जब सेवा साझाकरण के लिए पहला डेटा लिखती है तो सभी सेटिंग्स साफ़ कर दी जाती हैं।

अब, सेवा केवल साझा किए गए संदर्भों तक पहुंच को प्रदान करती है। दोनों प्रक्रियाओं लेखन द्वारा उपयोग की जाने वाली सेटिंग्स को डेटाबेस में संग्रहीत किया जाता है।

+0

क्या इससे समस्या हल हो गई? आपने इसे चिह्नित नहीं किया .. –

+0

किसी सेवा से साझा प्राथमिकताओं तक पहुंच को हटाने के बाद मुझे पता चला कि समस्या हल हो गई है – vallllll

3

मेरे पास एक ही समस्या है। साझा प्राथमिकताओं से सभी मान डिफ़ॉल्ट हो जाते हैं यदि कभी-कभी एक मान key = null के साथ लिखा जाता है। यह संभव है जब आप एक्लिप्स का उपयोग करके नए स्थिरांक बनाते हैं, जो उन्हें डिफ़ॉल्ट रूप से शून्य से जोड़ता है, और फिर आप कक्षा की शुरुआत में जाना भूल जाते हैं और कुछ सार्थक मूल्य में निरंतर बदल जाते हैं। यदि आप ऐप का उपयोग करना जारी रखते हैं, तो साझा प्राथमिकताओं का संचालन मान्य मान वापस कर देगा। लेकिन जब संदर्भ बदल जाता है (उदाहरण के लिए, जब एंड्रॉइड द्वारा की गई गतिविधि और पुन: बनाई गई) साझा प्राथमिकताओं से सभी मान डिफ़ॉल्ट मान (शून्य) वापस कर देंगे।

तो अपनी साझा प्राथमिकताओं की चाबियाँ जांचें! मुझे आशा है कि यह उत्तर किसी की मदद करेगा।

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