2009-12-03 12 views
9

शीर्षक की तरह कहते हैं, मैं जब मेरे एप्लिकेशन ध्यान केंद्रित क्योंकि एक और एप्लिकेशन शुरू की है खो देता है पता लगाने के लिए की जरूरत है (फोन कॉल में आता है, या उपयोगकर्ता होम आदि हिट)।एंड्रॉयड: का पता लगाने जब एक और गतिविधि शुरू की है (या अपनी गतिविधि ध्यान केंद्रित खो देता है)

अधिभावी Activity.OnStop क्योंकि यह है कि कहा जाता है जब मेरे अनुप्रयोग के भीतर की गतिविधियों स्विचिंग काम नहीं करता।

+0

संभव डुप्लिकेट (http://stackoverflow.com/questions/3290936/android-detect-when-other- ऐप्स-लॉन्च किए गए हैं) – Sam

उत्तर

3

AFAIK एंड्रॉयड इस के लिए कोई सुविधा प्रदान करता है। आप स्वयं इस ट्रैक करने में सक्षम हो सकता है (उदाहरण के लिए, यदि आपका गतिविधियों के किसी अन्य रूप में अपनी गतिविधियों में से एक कहा जाता है, और onStart() में onStop() समय की एक्स अवधि के भीतर नहीं बुलाया जाता है, शायद कुछ अन्य एप्लिकेशन की गतिविधि अग्रभूमि में है)।

+1

मैंने कोशिश की, लेकिन समस्या यह है कि स्टॉप पर नई गतिविधियों के बाद लगभग 15 सेकंड निकाल दिया जाता है। – FlySwat

+2

इससे चीजों को आसान बनाना चाहिए। सक्रिय गतिविधियों की गिनती बनाए रखने के लिए एक स्थिर परमाणु इंटेगर का उपयोग करें। इसे स्थैतिक प्रारंभकर्ता में 0 पर सेट करें। अपनी सभी गतिविधियों के ऑनस्टार्ट() में इसे बढ़ाएं। अपनी सभी गतिविधियों में इसे रोकें()। यदि, ऑनस्टॉप() में, कमी के बाद, मान 0 है, तो आप जानते हैं कि आपके पास 15 सेकंड के लिए स्क्रीन पर कोई गतिविधियां नहीं हैं और इसलिए शायद थोड़ी देर के लिए चले गए हैं। निजी तौर पर, मैं आपको सलाह देता हूं कि आप जो भी चिंता कर रहे हैं उसके बारे में चिंता न करें, क्योंकि एंड्रॉइड वास्तव में एप्लिकेशन सीमाओं को बढ़ावा देने के लिए डिज़ाइन नहीं किया गया है। – CommonsWare

+0

इस परिदृश्य के लिए 'रोकें() 'अधिक सही नहीं होगा? –

4

मेरा मानना ​​है कि आप इस्तेमाल कर सकते हैं:

onWindowsFocusChanged (बूलियन hasFocus)

अपनी गतिविधि से

1

आईसीएस के साथ ऊपर की ओर यह संभव हो सकता है।

यह एंड्रॉयड साइट से लिया जाता है:

जब उपयोगकर्ता अपने यूआई बाहर निकालता सूचना पाने के लिए, onTrimMemory() अपनी गतिविधि कक्षाओं में कॉलबैक लागू। आप इस विधि का उपयोग TRIM_MEMORY_UI_HIDDEN स्तर है, जो दर्शाता है कि आपके यूआई अब दृश्य से छिपाया गया के लिए सुनने के लिए चाहिए और आप संसाधन है कि केवल अपने यूआई का उपयोग करता है मुक्त कर देना चाहिए।

सूचना है कि आपकी ऐप TRIM_MEMORY_UI_HIDDEN साथ onTrimMemory() कॉलबैक केवल अपने ऐप प्रक्रिया के सभी UI घटक उपयोगकर्ता से छिपा बन प्राप्त करता है।

पूरी जानकारी http://developer.android.com/training/articles/memory.html के लिए इस पृष्ठ देखें

की [एंड्रॉयड, का पता लगाने अन्य एप्लिकेशन लॉन्च किया जाता है]
+0

यह मेरे लिए बहुत अच्छा काम करता है। धन्यवाद! – masterwok

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