2012-12-26 16 views
9

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

  1. उपयोगकर्ता बल सेटिंग में मेरे एप्लिकेशन बंद कर देता है, तो।
  2. कुछ कार्य हत्यारा ऐप ने मेरी ऐप प्रक्रिया को स्वतः मार दिया।
  3. एंड्रॉइड ने अपने ऐप को मार डाला, क्योंकि फ्रंट ऐप के लिए मेमोरी की आवश्यकता थी।

कृपया मुझे बताएं कि मैं इसे कैसे पहचानूं? बल्कि मेरे अलार्म कैसे सेट करें ताकि ये सभी मामले मेरे अलार्म को प्रभावित न करें।

उत्तर

28

उपयोगकर्ता बल सेटिंग्स में मेरे ऐप को बंद कर देता है।

हां, यह अलार्म साफ़ करता है।

कुछ कार्य हत्यारा ऐप ने मेरी ऐप प्रक्रिया को स्वतः मार दिया।

यह एंड्रॉइड के किसी भी हालिया संस्करण पर अलार्म साफ़ नहीं करता है।

एंड्रॉइड ने अपने ऐप को मार डाला, क्योंकि फ्रंट ऐप्स के लिए मेमोरी की आवश्यकता थी।

यह अलार्म साफ़ नहीं करता है।

कृपया मुझे बताएं कि मैं इसे कैसे पहचानूं?

आपका अलार्म आखिरी बार हुआ था (उदाहरण के लिए, SharedPreferences में) का रिकॉर्ड बनाए रखें। जब आपका कोड चलता है (उदा।, LAUNCHER गतिविधि शुरू हो गई है), अंतिम-अलार्म समय की जांच करें। यदि यह बहुत समय पहले था, तो आप जानते हैं कि आपके अलार्म साफ़ कर दिए गए थे, और इसलिए आपको उन्हें फिर से निर्धारित करने की आवश्यकता है।

बल्कि मेरे अलार्म कैसे सेट करें ताकि ये सभी मामले मेरे अलार्म को प्रभावित न करें।

यह संभव नहीं है। ऐसे कुछ मामले हैं जहां अलार्म वास्तव में साफ़ किए जाते हैं (रीबूट और फोर्स स्टॉप), और उन मामलों में आपके अलार्म को साफ़ करने से रोकने के लिए आप कुछ भी नहीं कर सकते हैं।

+0

पूर्ण और विस्तृत उत्तर के लिए धन्यवाद, धन्यवाद! –

+0

क्या होगा यदि उपयोगकर्ता ऐप के डेटा को साफ़ करता है? क्या हम रिकॉर्ड का ट्रैक नहीं खोलेंगे? – Krishnaraj

+0

@ कृष्णाराज: हां। आशा है कि आपका उपयोगकर्ता ऐसा नहीं करता है। – CommonsWare

2

@ कॉमन्सवेयर जैसा कि आपने कहा है "कुछ ऐसे मामले हैं जहां अलार्म वास्तव में साफ़ किए जाते हैं (रीबूट और फोर्स स्टॉप), और उन मामलों में आपके अलार्म को साफ़ करने से रोकने के लिए आप कुछ नहीं कर सकते हैं।"

लेकिन मैं दोनों को संभाला जा सकता है महसूस हो रहा है:

रीबूट: आशय कार्रवाई

फोर्स android.intent.action.BOOT_COMPLETED बंद: अगर एप्लिकेशन कुछ सर्वर के साथ संचार संभाला जा सकता है, और वहाँ आप GCM एकीकृत कर सकते हैं जो अंततः आपके आवेदन को शुरू कर सकता है, अगर उसकी हत्या हो जाती है। onReceive में के रूप में:

final Intent notificationIntent = new Intent(context, YourActivity.class); 
notificationIntent.setAction(Intent.ACTION_MAIN); 
notificationIntent.addCategory(Intent.CATEGORY_LAUNCHER); 

अपने आवेदन शुरू करने के लिए।

मुझे बताएं कि क्या मैं गलत हूं।

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

  • कोई संबंधित समस्या नहीं^_^