2010-06-10 5 views
25

में अनइंस्टॉल करने पर एक कार्य करें मैंने एक एंड्रॉइड ऐप विकसित किया है। अब जब मैं ऐप को फ़ोन से अनइंस्टॉल कर देता हूं, तो मैं कुछ ऑपरेशन करना चाहता हूं (i। E। - सेटिंग रीसेट करें ..)।एंड्रॉइड

क्या एक श्रोता या फ़ंक्शन को फिर से बदलना संभव है जिसे ऐप हटा दिए जाने पर कहा जाता है?

+1

एप्लिकेशन 'एनक्यू मोबाइल सिक्योरिटी' http://i.imgur.com/Fos9N.png, http://i.imgur.com/fIZbK.png, http पर अनइंस्टॉल पर एक गतिविधि को कॉल कर रहा है : //i.imgur.com/cG9Hr.png और प्रश्न http://stackoverflow.com/questions/10219328/how-to-show-an-activity-before-my-app-is-uninstalled-android –

+0

अच्छा सवाल .. –

+0

पर मेरा उत्तर की जाँच करें: http://stackoverflow.com/questions/5132472/can-code-be-called-when-my-android-application-is-uninstalled/28209337#28209337 यह आपको –

उत्तर

16

अफसोस की बात है कि इस समय एंड्रॉइड आपको इस ऐप को अनइंस्टॉल करने के समय कोड करने की संभावना नहीं देता है।

साझा किए गए संदर्भों के माध्यम से सेट की गई सभी सेटिंग्स को एप्लिकेशन डेटा में कैश फ़ोल्डर में सब कुछ के साथ हटा दिया जाता है।

एकमात्र चीज जो जारी रहेगी वह वह डेटा है जो एसडी-कार्ड में लिखा गया है और जो फोन सेटिंग्स में किए गए किसी भी बदलाव में है। मुझे नहीं पता कि आपके ऐप के माध्यम से संपर्कों के साथ सिंक्रनाइज़ किए गए डेटा के साथ क्या होता है।

+7

मुझे यह उदास नहीं लगता है। असल में, मैं उत्साहित हूं, क्योंकि यह मेरे फोन पर स्पाइवेयर जैसी गतिविधि को रोकने में मदद करता है। –

+4

लेकिन यह मुझे फ़ोन मेमोरी भरने से रोकने के लिए एसडी-कार्ड में डाउनलोड किए गए डेटा जैसे कुछ चीजों को साफ करने से रोकता है। नहीं, मैं एसडी कार्ड भरता हूं। शायद यह ऐप के साथ froyo में एसडी के साथ बेहतर हो जाएगा, लेकिन 2.2 वर्ष से कम के उपकरणों के लिए मैं एक विन्यास पर विनम्र होना चाहता हूं। – Janusz

+7

@ जैनुज़: 'android.os.Environment' क्लास पर' getExternalStorageDirectory() 'पर एक नज़र डालें। ऑनलाइन डॉक्टर का कहना है कि एपीआई स्तर 1 के बाद से वहां रहा है, लेकिन मुझे यह याद नहीं है। भले ही, आपको एसडी कार्ड पर एक ऐप-विशिष्ट निर्देशिका देना है जो ऐप अनइंस्टॉल होने पर साफ़ हो जाएगा। – CommonsWare

6

जब आपका एप्लिकेशन अनइंस्टॉल किया जाता है तो आप नियंत्रण नहीं ले सकते - क्षमा करें!

+1

धन्यवाद, में मदद करेगा I android.intent.action.PACKAG के लिए रिसीवर सेट करें E_REMOVED और इसे तब भी कहा जाता है जब कोई एप्लिकेशन अनइंस्टॉल करता है, मैं इस रिसीवर – dhaiwat

+0

पर हटाए गए पैकेज नाम को कैसे प्राप्त कर सकता हूं यदि यह संभव नहीं है तो फ़ायरबेस विश्लेषण स्वचालित रूप से app_remove ईवेंट कैसे प्रदान करता है? –

+2

@OfekRon: कृपया एकाधिक उत्तरों पर डुप्लिकेट टिप्पणियां पोस्ट न करें। मैं फायरबेस का उपयोग नहीं करता, और मुझे नहीं पता कि "app_remove ईवेंट" क्या हैं। हालांकि, * डिवाइस पर अन्य ऐप्स * यह पता लगा सकते हैं कि आपका ऐप अनइंस्टॉल किया गया था। इसलिए, मुझे लगता है कि Play Services Framework ऐप, Play Store, या Google स्वामित्व कोड का कोई अन्य टुकड़ा, वह है जो अनइंस्टॉल करने और उस जानकारी को Google के सर्वर पर अग्रेषित करने का पता लगा रहा है। – CommonsWare

3

एपीआई स्तर 8 के बाद से आप Context.getExternalFilesDir() का उपयोग कर सकते हैं। सिद्धांत में जब एप्लिकेशन अनइंस्टॉल किया जाता है तो यहां रखा गया कोई भी डेटा हटा दिया जाएगा।

http://developer.android.com/reference/android/content/Context.html#getExternalFilesDir(java.lang.String)

-3

जब उसके मोबाइल में उपयोगकर्ता स्थापना रद्द करें एंड्रॉयड आवेदन PACKAGE_REMOVED रिसीवर कॉल करेंगे। आप अनइंस्टॉल किए गए ऐप पैकेज नाम का उपयोग इरादा प्राप्त कर सकते हैं, getDataString()

if (intent.getAction(). equals ("android.intent.action.PACKAGE_REMOVED")) { 
      String packageName = intent.getDataString(); 
      System.out.println ("uninstall:" + packageName + "package name of the program"); 
} 

इस लिंक में पूरा उदाहरण देखें। http://foryouneed.blogspot.in/2014/08/android-listener-application-to-install.html

+2

ऐप को अनइंस्टॉल किया जा रहा है, इस उद्देश्य को दस्तावेज़ों से प्राप्त नहीं होगा: "स्थापित किया जा रहा पैकेज इस इरादे को प्राप्त नहीं करता है"। http://developer.android.com/reference/android/content/Intent.html#ACTION_PACKAGE_REMOVED – Anastasia