2012-03-23 31 views
5

मैं कोड का निम्न भाग को क्रियान्वित कर रहा हूँ की हत्या:चल प्रक्रियाओं की सूची प्राप्त करना और एक विशिष्ट प्रक्रिया

ActivityManager actvityManager = (ActivityManager) this.getSystemService(ACTIVITY_SERVICE); 
List<RunningTaskInfo> procInfos = actvityManager.getRunningTasks(1000); 

फिर, मैं मारने एक प्रक्रिया के साथ मैं

actvityManager.killBackgroundProcesses(process.baseActivity.getPackageName()); 

में दिलचस्पी रखता हूँ जहां processprocInfos से एक प्रविष्टि है।

समस्या अगर मैं getRunningTasks फिर से चलाने के है - यह अभी भी, इस प्रक्रिया को मैं (शायद) को मार डाला दिखाने Android के लिए एक कार्य प्रबंधक है कि इस प्रक्रिया सूचीबद्ध killBackgroundProcesses कॉल करने से पहले और कहा कि कॉल के बाद सूची से निकाल दिया था, जबकि होगा।

तो, कार्य प्रबंधक को चल रही प्रक्रियाओं की सूची कैसे प्राप्त होती है, इस पर कोई विचार है? और क्या यह सामान्य है कि मैंने अनियंत्रित डिवाइस पर तीसरे पक्ष की प्रक्रिया को सफलतापूर्वक मार दिया है?

+1

यह एक नए प्रश्न के रूप में बेहतर होगा, क्योंकि यह मूल रूप से आपने जो पूछा उससे काफी अलग है। किसी भी मामले में, आप यहां अपने वर्तमान प्रश्न का अधिकांश उत्तर यहां प्राप्त कर सकते हैं: http://stackoverflow.com/questions/8814696/how-to-kill-currently-running-task-in-android, विशेष रूप से दूसरा उत्तर । –

+0

@RobPridham: बहुत बहुत धन्यवाद, मुझे वह सवाल नहीं मिला। और मेरा rephrased सवाल मूल से मुझे बहुत अलग नहीं लगता है ... –

उत्तर

5

'रनिंग' का मतलब यह नहीं है कि उपयोगकर्ता ने इसे शुरू किया; यह घटनाओं के लिए सुन रहा है, एक निर्धारित पृष्ठभूमि सिंक या कुछ और कर रहा है।

ActivityManager.getRunningTasks() आप जो चाहते हैं उसके करीब हो सकते हैं, लेकिन संक्षेप में आपको हमेशा यह समस्या होगी, क्योंकि उपयोगकर्ता वर्तमान में सक्रिय होने पर पूर्ण नियंत्रण में नहीं है।

+0

समझ में आता है, लेकिन मुझे अभी भी पता नहीं है कि क्यों गैलरी "चल रहा है" के रूप में दिखाई देती है क्योंकि मैंने डिवाइस को रीबूट किया और निश्चित रूप से गैलरी शुरू नहीं किया बिलकुल। –

+0

कई कारण हो सकते हैं - केवल एक उदाहरण के रूप में, एक एप्लिकेशन सिस्टम बूट इवेंट की सदस्यता ले सकता है, और इसे प्राप्त करने से इसे शुरू किया जा सकता है, जहां तक ​​यह तब तक चलने के रूप में गिना जाएगा जब तक सिस्टम इसे मारने का फैसला नहीं करता है। –

+0

बहुत बहुत धन्यवाद। 'getRunningTasks()' वास्तव में ऐसा करने लगता है जो मुझे चाहिए। एक आखिरी सवाल: क्या आप मौके से जानते हैं कि 'getRunningTasks' द्वारा वापस किए गए कार्य ('ActivityManager.RunningTaskInfo') के लिए संबंधित प्रक्रिया नाम कैसे प्राप्त करें? –