android - उनल - अलार्म सेटिंग चाहिए




अलार्म को रीसेट करने के लिए मेरे एंड्रॉइड एप्लिकेशन को कैसे अपग्रेड किया गया है? (3)

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

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

<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 अपग्रेड OnUpgradeReceiver को ट्रिगर करने के लिए android:path का उपयोग किया जाता है।

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

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

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

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

ऐसे मामले को कैसे संभालें?

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



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

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







android