2010-12-29 7 views
9

मैं एंड्रॉइड विगेट्स को इस तरह से कैसे प्रतिबंधित कर सकता हूं कि उपयोगकर्ता द्वारा केवल एक ही उदाहरण बनाया जा सकता है?प्रति डिवाइस एक उदाहरण के लिए एंड्रॉइड विजेट को प्रतिबंधित करें

SharedPreference को counter वैरिएबल और क्रैश समेत एक संभावित तरीका है, यदि गणना 1 है, लेकिन जाहिर है कि मैं उस समाधान के पक्ष में नहीं हूं। ;-)

उत्तर

7

मैं एंड्रॉइड विगेट्स को इस तरह से कैसे प्रतिबंधित कर सकता हूं कि उपयोगकर्ता द्वारा केवल एक ही उदाहरण बनाया जा सकता है?

आप नहीं कर सकते।

हालांकि, चूंकि उपयोगकर्ता आपके ऐप विजेट के कई उदाहरणों के लिए पूछता है, इसका मतलब यह नहीं है कि आपको प्रत्येक के लिए अलग-अलग डेटा प्रबंधित करना होगा। बस आईडी को अनदेखा करें और updateAppWidget() विधि का उपयोग करें जो कोई आईडी नहीं लेता है।

+0

@ कॉमन्सवेयर - क्या आपको कोई विचार है कि बिना किसी विजेट आईडी के जेनेरिक प्रसारण कैसे भेजा जाए? क्योंकि मेरे पास 'सेवा' से कुछ सिग्नल हैं, और विजेट/व्यू कोड के साथ सेवा संचालन को मिश्रित नहीं करना चाहते हैं। –

+0

@ सेबेस्टियन रोथ: आपकी पहली टिप्पणी में लंबी स्ट्रिंग के कारण मैं आपकी दूसरी टिप्पणी नहीं पढ़ सकता। उस पहली टिप्पणी को हटाने या अपने प्रश्न, या कुछ को संपादित करने पर विचार करें। – CommonsWare

+0

@ कॉमन्सवेयर, किया गया। वास्तव में मुझे अब एक रास्ता मिल गया है। संक्षेप में: एक काउंटर वैरिएबल को परिभाषित करें, एक एंड्रॉइड जोड़ें: गतिविधि कॉन्फ़िगर करें और विजेट प्रबंधित करें। यदि यह पहले से ही दिखाई दे रहा है (काउंटर == 1), तो 'AppWidgetHost ah = new AppWidgetHost (यह, 1024) का उपयोग करें; ah.deleteAppWidgetId (mAppWidgetId); '। 1024 एंड्रॉइड लॉन्चर के लिए जादू संख्या है। वह कॉन्फ़िगरेशन गतिविधि पारदर्शी हो सकती है या बिना किसी दृश्य के हो सकती है, लेकिन यह कुछ भी कर सकती है जिसे हमें तैयार करने की आवश्यकता है। –

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