2011-03-31 12 views
7

मैं अपने ऐप में बड़ी फ़ाइल-डाउनलोड को संभालने के लिए एक इंटेंट सेवा का उपयोग करता हूं। लेकिन जब मैं डाउनलोड रद्द करना चाहता हूं तो मैं stopService(intent) पर कॉल करता हूं। हालांकि onDestroy() विधि कहा जाता है लेकिन डाउनलोड बंद नहीं होता है। डाउनलोड रद्द करने के लिए मुझे और क्या करना है? धन्यवाद।किसी इरादे सेवा को कैसे रोकें?

+1

आपको सिंगलटन उदाहरणों के साथ काम करना चाहिए और अपने डाउनलोड को रोकने के लिए एक हैंडलर संदेश ढूंढना चाहिए। – papachan

+2

क्या आप मुझे थोड़ा और दे सकते हैं? मैं वास्तव में नहीं जानता कि मुझे इसके साथ क्या करना चाहिए। – notme

उत्तर

8

मैं इस बाहर अपने आप को लगा नहीं, लेकिन मैं के साथ एक Intent भेजें:

intent.putExtra("pause", "yes"); 
startService(intent); 

और फिर मैं public int onStartCommand(Intent intent, int a, int b)IntentService अंदर (जो अनुशंसित नहीं है) को ओवरराइड और देखना है कि "ठहराव" "हाँ" मैंने एक स्थिर बूलियन mPaused से true सेट किया है। यदि आपके पास onHandleIntent में लूप है, तो लूप स्थिति में && !mPaused जोड़ें।

बेशक यह सब 'बुरा' कोड और एक हैक है ... लेकिन मुझे उम्मीद है कि कोई और ऐसा करने के सही तरीके से झुकता है।

+0

कोई बुरा कोड नहीं, मुझे लगता है। यह सेवा को रोकने का एक सही तरीका है। –

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