दिलचस्प पोस्ट
घातक त्रुटि: Python.h: ऐसा कोई फ़ाइल या निर्देशिका नहीं एक जावा प्रोग्राम से .jar फ़ाइल निष्पादित करें एक्लिप्स पैकेज एक्सप्लोरर में पदानुक्रमित पैकेज संरचना को कैसे देखें सास में चयनकर्ता के मध्य को संशोधित करना (वर्गों को जोड़ने / हटाने आदि) निर्देशिका या फ़ाइल में लिखने की अनुमतियों के लिए आप कैसे जांच करते हैं? ओरेकल जेडीबीसी ओजडीबीसी 6 जार एक मवेन निर्भरता के रूप में सभी को अनुमति दें को अनुमति दें AngularJS: एनजी मॉडल बाध्यकारी अद्यतन नहीं है जब jQuery के साथ बदल दिया कौन सी HTML5 रीसेट सीएसएस आप उपयोग करते हैं और क्यों? क्रॉस-थ्रेड एक्सेस अपवादों से कैसे निपटें? कमांड लाइन के माध्यम से रूबी स्क्रिप्ट के लिए चर पास करें पायथन मल्टी प्रोकेसेसिंग का इस्तेमाल करने वाली शर्मनाक समानांतर समस्याओं को हल करना एक JSON स्ट्रिंग के निर्माण में विशेष वर्णों से बचने के लिए कैसे? डेटाबेस तालिका के किसी स्तंभ में एक सूची को कैसे संग्रहीत करें जावास्क्रिप्ट का उपयोग करते हुए jquery लोड किया जा रहा है या नहीं

कैसे जानूं कि मेरा ऐप कब मार गया है?

मुझे यह जानना होगा कि जब उपयोगकर्ता मेरा ऐप (फोर्स स्टॉप) को मारता है मैं एंड्रॉइड जीवनचक्र पढ़ रहा हूं, जिस पर ओपन एंड ओनस्ट्राय फ़ंक्शंस है, ये उपयोगकर्ता द्वारा मेरे एप पर समाप्त होने वाले प्रत्येक गतिविधि से संबंधित हैं, लेकिन जब उपयोगकर्ता बल मेरे ऐप को रोक या मारता है तो नहीं।

उपयोगकर्ता को एप को मारने का कोई तरीका क्या है?

वेब के समाधान से एकत्रित समाधान "कैसे जानूं कि मेरा ऐप कब मार गया है?"

जब कोई प्रक्रिया मारे जाए तो यह निर्धारित करने का कोई तरीका नहीं है। एंड्रॉइड ऐप के बल को रोक या अनइंस्टॉल करने के लिए कैसे पता लगाया जाए?

जब कोई उपयोगकर्ता या सिस्टम बल आपके आवेदन को रोक देता है, तो पूरी प्रक्रिया को केवल मार दिया जाता है। आपको यह सूचित करने के लिए कोई कॉलबैक नहीं किया गया है कि यह हुआ है।

जब उपयोगकर्ता ऐप को अनइंस्टॉल करता है, तो पहले की प्रक्रिया को मार डाला जाता है, फिर आपके एपीके फ़ाइल और डेटा डायरेक्टरी को हटा दिया जाता है, साथ ही पैकेज मैनेजर के रिकार्ड के साथ अन्य एप्लिकेशन बताते हैं जो आपके लिए पंजीकृत हैं।

मुझे ऐसा करने का एक रास्ता मिल गया …..

1) इस तरह एक सेवा बनाओ

public class OnClearFromRecentService extends Service { @Override public IBinder onBind(Intent intent) { return null; } @Override public int onStartCommand(Intent intent, int flags, int startId) { Log.d("ClearFromRecentService", "Service Started"); return START_NOT_STICKY; } @Override public void onDestroy() { super.onDestroy(); Log.d("ClearFromRecentService", "Service Destroyed"); } @Override public void onTaskRemoved(Intent rootIntent) { Log.e("ClearFromRecentService", "END"); //Code here stopSelf(); } } 

2) इस सेवा को Manifest.xml में इस तरह रजिस्टर करें

 <service android:name="com.example.OnClearFromRecentService" android:stopWithTask="false" /> 

3) फिर अपने स्प्लैश गतिविधि पर यह सेवा शुरू करें

 startService(new Intent(getBaseContext(), OnClearFromRecentService.class)); 

और अब जब भी आप एंड्रॉइड से अपना ऐप साफ कर लेंगे, तब इस विधि कोटाक्रेमड () पर चलाना होगा।

एक अनुप्रयोग वर्ग बनाएँ

 onCreate() Called when the application is starting, before any activity, service, or receiver objects (excluding content providers) have been created. onLowMemory() This is called when the overall system is running low on memory, and actively running processes should trim their memory usage. onTerminate() This method is for use in emulated process environments. 

यहां तक ​​कि अगर आप आवेदन मार रहे हैं या बल को रोकें, फिर एंड्रॉइड आपके एपलीकेशन क्लास को शुरू करेगा

आप हमेशा इस कोड का उपयोग कर सकते हैं:

 protected void onCreate(Bundle savedInstanceState) { //... Thread.setDefaultUncaughtExceptionHandler(new UncaughtExceptionHandler() { @Override public void uncaughtException(Thread thread, Throwable ex) { //inform yourself that the activity unexpectedly stopped //or YourActivity.this.finish(); } }); //... } 

मेरे पास एक वैकल्पिक विचार है.आप की तरह एक जैसी समस्या है। तरीकों को ठीक करने के लिए नहीं। मेरी समस्या: "मैं सभी सहेजे गए डेटा को पूरे एप को साफ़ करना चाहता हूं, जब उपयोगकर्ता पूरी तरह से ऐप बंद कर देता है"

इसलिए, मैंने आवेदन वर्ग में स्पष्ट () और स्पष्ट सहेजे गए डेटा (साझा वरीयता या छोटे डीबी) से जोड़ा।