2012-12-25 34 views
6

मेरा ऐप उपयोगकर्ता इंटरैक्शन पर दोहराने वाला अलार्म सेट करता है, तो यह अलार्म प्रबंधक के साथ प्रसारण के लिए अंतराल समय सेट बदल सकता है।
अतिरिक्त के रास्ते में बहुत कुछ नहीं है।
क्या इस मामले में अद्यतन को बेहतर या रद्द करें?FLAG_CANCEL_CURRENT या FLAG_UPDATE_CURRENT

धन्यवाद

+0

'एक्स्ट्रा के रास्ते में ज्यादा कुछ नहीं' क्या है? क्या आप अतिरिक्त उपयोग कर रहे हैं या नहीं? –

+0

नहीं, मैं अतिरिक्त उपयोग नहीं कर रहा हूं .. – Dory

+0

सावधान रहें कि सैमसंग लॉलीपॉप को समस्या है जब कोई FLAG_CANCEL_CURRENT का उपयोग कर रहा हो। Http://stackoverflow.com/questions/29344971/java-lang-securityexception-too-many-alarms-500-registered-from-pid-10790-u – Elye

उत्तर

11

आप अतिरिक्त उपयोग नहीं कर रहे हैं, तो आप उन लोगों के झंडे के किसी भी निर्दिष्ट करने के लिए नहीं है। वे केवल PendingIntent के साथ एक्स्ट्रा को कैसे प्रबंधित करते हैं: वर्तमान मिलान में सिस्टम को प्रतिस्थापित करें (सिस्टम PendingIntent द्वारा कैश करें) या इसे रद्द करें और एक नया बनाएं। PendingIntents है कि आप जब अलार्म सेटिंग का उपयोग के साथ http://developer.android.com/reference/android/app/PendingIntent.html#FLAG_CANCEL_CURRENT

+0

ठीक है मुझे यह मिला ... धन्यवाद ..! – Dory

+0

चूंकि उसे कैंसल की आवश्यकता नहीं है, इसलिए 'FLAG_UPDATE_CURRENT' जाने का तरीका है - अन्यथा कोई नई वस्तु बनाने का अनदेखा ओवरहेड है। –

+0

इसके अलावा कैंसल का उपयोग करने के परिणामस्वरूप 'लंबित इंटेन्टेंट। रद्द कर दिया गया' –

6

कभी उपयोग FLAG_CANCEL_CURRENT: जानकारी के लिए दस्तावेज़ देखें। यदि आप किसी अलग समय के लिए अलार्म को फिर से निर्धारित करना चाहते हैं तो आपको किसी भी ध्वज की आवश्यकता नहीं है; बस शून्य के झंडे के साथ एक डुप्लिकेट लंबितइन्टेंट बनाएं और उसके बाद अलार्म सेट करने के लिए इसका उपयोग करें: यह मौजूदा अलार्म को पूरी तरह से रद्द कर देगा और फिर इसे नए निर्दिष्ट समय के लिए सेट करेगा। यदि आपने नया लंबित इंटेन्टेंट बनाया है, तो आपने FLAG_CANCEL_CURRENT का उपयोग किया है, हालांकि, यह अलार्म प्रबंधक की यह पहचानने की क्षमता को तोड़ देता है कि यह अब "रद्द" लंबित इंटेंटेंट के समान है, और आप पुराने लटकते हुए, अविश्वसनीय, मेमोरी लेते हुए और सीपीयू। मैंने इस बग रैक के साथ ऐप्स को सचमुच सिस्टम में सैकड़ों स्टाइल अलार्म को देखा है, जो एक उल्लेखनीय प्रदर्शन और मेमोरी-उपयोग हिट होने के लिए पर्याप्त है।

यदि आप वास्तव में मौजूदा अलार्म को फिर से निर्धारित किए बिना अतिरिक्त परिवर्तन करना चाहते हैं, तो FLAG_UPDATE_CURRENT क्या है। यदि आप पुन: निर्धारित करना चाहते हैं, तो किसी भी झंडे का उपयोग न करें।