दिलचस्प पोस्ट
स्विफ्ट कोड को ऑब्जेक्टिव-सी में कैसे आयात करें PostgreSQL: एक्सेल / सीएसवी से एसक्यूएल क्वेरी से निर्यात परिणाम डेटा कैश को साफ़ करने के लिए ब्राउज़र को बल दें मैं SQL सर्वर के साथ कैस्केड हटाने का उपयोग कैसे करूं? जावा सिंगलटन और सिंक्रनाइज़ेशन जावास्क्रिप्ट में कस्टम सॉर्ट फ़ंक्शन को कैसे परिभाषित करें? JSH के साथ SSH पर कमांड चलाएं मेरे कोड में डॉक्स लिस्ट को DriveApp में कैसे अपडेट करें सिमफ़ोनी 2.8 / 3.0 में निर्माण फार्म () बनाने के लिए पासिंग अलग Angular2 टाइपस्क्रिप्ट फ़ाइलें और जावास्क्रिप्ट फ़ाइलों को अलग-अलग फ़ोल्डर में, शायद 'dist' बूलियन, सशर्त ऑपरेटर्स और ऑटोबॉक्सिंग कैसे सी में पूर्णांक को कन्वर्ट करने के लिए? NSFetchRequest और predicateWithBlock क्या सी ++ 11 लंबा लंबा वास्तव में कम से कम 64 बिट्स है? मैं iPhone पर एक रेखा कैसे खींचूं?

अलार्म को रीसेट करने के लिए, मेरे एंड्रॉइड एप्लिकेशन को कैसे पता चलेगा?

मैंने देखा कि एक अलार्म निष्क्रिय हो जाता है, जब यह अलार्म सेट करने वाला एप्लिकेशन अपग्रेड कर दिया गया है। क्या यह सच है ?

अब तक, मैंने यह जानने के लिए कि क्या यह मेरे आवेदन का पहला भाग है, मैंने FIRST_RUN कुंजी के साथ SharedPreferences किए गए SharedPreferences उपयोग किया था। अगर मुझे यह कुंजी नहीं मिलती है, तो मैं अलार्म को सक्षम करता हूं और FIRST_RUN को झूठे में सेट करता FIRST_RUN , अन्यथा मैं कुछ नहीं करता।

लेकिन मैंने यह भी ध्यान दिया कि ये प्राथमिकताएं ऐप अपग्रेड के बीच बरकरार रहती हैं!

तो एक अपग्रेड के बाद, FIRST_RUN कुंजी पहले से ही गलत है, इसलिए मैं कुछ भी नहीं करता, जबकि मेरा अलार्म सक्षम होना चाहिए।

इस तरह के मामले को कैसे संभालना है?

अग्रिम में धन्यवाद

Solutions Collecting From Web of "अलार्म को रीसेट करने के लिए, मेरे एंड्रॉइड एप्लिकेशन को कैसे पता चलेगा?"

मैंने कभी यह स्वयं की कोशिश नहीं की, लेकिन क्या ACTION_PACKAGE_REPLACED आशय की बात ACTION_PACKAGE_REPLACED BroadcastReceiver ACTION_PACKAGE_REPLACED बनाने के बारे में?

मैंने पहले यह कोशिश करने के बारे में सोचा है, लेकिन मुझे यकीन नहीं है कि इसके साथ चिकन और अंडे की समस्या है या नहीं (उदाहरण के लिए, क्या नए अपग्रेड किए जाने वाले आवेदन प्राप्त करने से पहले आशय प्राप्त होता है?)। एक कोशिश के बावजूद, यद्यपि।

डैनियल ल्यू द्वारा समाधान:

मेनिफेस्ट में निम्नलिखित पंक्तियों के साथ एक रिसीवर की आवश्यकता है:

 <receiver android:name=".OnUpgradeReceiver"> <intent-filter> <action android:name="android.intent.action.PACKAGE_REPLACED" /> <data android:scheme="package" android:path="your.app.package" /> </intent-filter> </receiver> 

android:path किसी भी आवेदन के किसी भी अपग्रेड से ट्रिगर होने के लिए OnUpgradeReceiver को रोकने के लिए android:path का उपयोग किया जाता है।

बस, android.intent.action.MY_PACKAGE_REPLACED को सुनो … यह INTENT आपको सूचित करेगा यदि आपके एप्लिकेशन का कोई नया संस्करण किसी मौजूदा संस्करण पर स्थापित किया गया है

नोट: यह इरादा एपीआई 12 से शुरू हो सकता है

एंड्रॉइड ओएस v12 और इसके बाद के संस्करण के लिए आपको कार्रवाई के साथ प्रसारण प्राप्तकर्ता को ACTION_MY_PACKAGE_REPLACED रजिस्टर करना होगा

 <receiver android:name=".MyBroadcastReceiver"> <intent-filter> <action android:name="android.intent.action.MY_PACKAGE_REPLACED" /> </intent-filter> </receiver>