2014-06-09 4 views
13

के साथ शुरू किया गया है एक सेवा पर TaskRemoved() विधि लागू है।
जब सेवा प्रारंभ सेवा() onTaskRemoved() से शुरू हुई, जिसे ऐप ने हालिया-ऐप्स-सूची से स्वाइप करके हटा दिया था।
लेकिन अगर सेवा bindService() से शुरू हुई, तो onTaskRemoved() को कभी नहीं बुलाया जाता है।

सेवा कॉल कैसे करें TaskRemoved() जब ऐप हालिया-ऐप्स-सूची से हटा दिया जाता है तो इसे bindService() से शुरू करने के बाद स्वाइप द्वारा हटाया जाता है?सेवा: onTask को बुलाया नहीं जाता है अगर bindService

1. bindService(): 
Activity﹕ onCreate() 
CustomService﹕ onCreate() 
CustomService﹕ onStart() 
CustomService﹕ onStartCommand() 
CustomService﹕ onBind() 
// Here we swipe to remove app from recent-apps-list 
CustomService﹕ onTrimMemory() 

2. startService(): 
ActivityA﹕ onCreate() 
CustomService﹕ onCreate() 
CustomService﹕ onStart() 
CustomService﹕ onStartCommand() 
CustomService﹕ onBind() 
// Swipe to remove app from recent-apps-list 
CustomService﹕ onTrimMemory() 
CustomService﹕ onTaskRemoved() // <===== 
CustomService﹕ onUnbind() 
+2

महत्वपूर्ण नोट: 'ट्रीम मेमरी() 'को हर बार ऐप पृष्ठभूमि में जाता है, आपको इसे ट्रिगर करने के लिए" हटाने के लिए स्वाइप "करने की आवश्यकता नहीं होती है। यह तब होगा जब आप होम बटन दबाएंगे। तो आपकी टिप्पणी भ्रामक है। – ForceMagic

उत्तर

11

एक सेवा के लिए बाध्य या शुरू किया जा सकता है या दोनों:

निम्न विधियों में कहा जाता है, तो साथ शुरू कर दिया। यह इस बात पर निर्भर करता है कि आप onStartCommand और onBind दस्तावेज़ों को कैसे कार्यान्वित करते हैं।

http://developer.android.com/guide/components/services.html

लेकिन आप अपने सेवा दोनों के आसपास रहने और एक IBinder से अधिक ग्राहकों के साथ बात करते हैं तो बस सेवा शुरू करने और फिर इसे करने के लिए बाध्य करना चाहते हैं।

startService(new Intent(context, CustomerService.class)); 
// Bind to the service 
bindService(new Intent(context, CustomerService.class), 
         mConnection, Context.BIND_AUTO_CREATE); 
+0

मैं वही कर रहा हूं और ऑनस्टार्ट कमांड() को भी बुलाया जाता है, लेकिन पृष्ठभूमि पृष्ठभूमि में नहीं चल रहा है। आवेदन नष्ट हो जाता है तो सेवा भी नष्ट हो जाती है .. क्या आप मदद कर सकते हैं? –

+0

मुझे मदद करने के लिए आपके कोड का थोड़ा और देखना होगा। एक प्रश्न पूछें कुछ कोड पोस्ट करें। एसओ में कोई भी मदद करेगा। – danny117

+0

यह थोड़ा सा काम करता है, जब ऐप नष्ट हो जाता है, सेवा वास्तव में बंद हो जाती है और फिर से शुरू होती है। इसकी ऑनक्रेट() और ऑनस्टार्ट कमांड() फिर से कॉल करते हैं, मैं बस सेवा को रोकना और फिर से शुरू नहीं करना चाहता हूं। मैं सिर्फ पृष्ठभूमि में लगातार चलना चाहता हूं। कोई विचार यह कैसे प्राप्त करें? –

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