c# - App being shut down in background -


अपडेट:

यह प्रश्न बंद किया जा सकता है।


त्वरित नोट: मैं इसे सीमर में कोडिंग कर रहा हूं, लेकिन नियमित जावा और एंड्रॉइड के लिए कोई भी समाधान करना चाहिए, इसलिए चिंता न करें, अगर आपकी प्रतिक्रिया सी # या एक्समारिन के लिए विशिष्ट नहीं है।

मुझे एक ऐसी समस्या हो रही है जहां स्क्रीन बंद हो जाने पर मेरे एंड्रॉइड एप्लिकेशन को बंद किया जा रहा है और ऐसा आमतौर पर एक मिनट से भी कम समय में होता है। यह तब चला रहता है जब आवेदन खुले हो जाता है, शायद इसका उपयोग करने के दौरान एंड्रॉइड मेरे आवेदन को संभालने के तरीके के साथ कुछ कर रहा है ऐसा तब नहीं होता है जब मैं एक आईडीई में आवेदन को डिबग कर रहा हूं, हालांकि, शायद यह एप्लिकेशन को जीवित रखता है, इसलिए मुझे उस से कोई मदद नहीं मिल रही है

इस एप्लिकेशन में कुछ गतिविधियों और एक सेवा शामिल है। सेवा टीसीपी कनेक्शन का उपयोग करके डेटा भेजती है और प्राप्त करती है। जब आवेदन खोला जाता है, तो यह लॉगिन गतिविधि से शुरू होता है। तब जब आप लॉगिन होते हैं, तो वह गतिविधि समाप्त कर देता है और मुख्य गतिविधि को खोलता है। ।

सेवा एक अग्रभूमि सेवा है।

पूर्व> सार्वजनिक ओवरराइड StartCommandResultOnartartCommand (आशय इरादा, StartCommandFlags झंडे, int startId) {base.OnStartCommand (इरादे, झंडे, startId); ... var चालू नोटिफिकेशन = नया अधिसूचना (संसाधन। ड्रॉएबल.कॉन, "सर्विस रनिंग"); Var लंबित प्रत्यारोपण = लंबित.गेट गतिविधि (यह, 0, नए आशय (यह, प्रकार (मेनएक्टिविटी)), 0); चालू सूचना। सैटलाटेस्टइवेंट इन्फोस (यह, "सर्विस", "सर्विस चल रही है।", लंबित प्रेंटेंट); StartForeground ((int) NotificationFlags.ForegroundService, चालू नोटिफिकेशन); रिटर्न StartCommandResult.RedeliverIntent; }

ऐप का हिस्सा जो बंद किया जा रहा है, वह मुख्य गतिविधि और सेवा है।

जब मैं अनुप्रयोग को फिर से खोलने की कोशिश करता हूं, ऐसा लगता है जैसे कि यह मुख्य गतिविधि को फिर से खोलने की कोशिश करता है, लेकिन फिर विफल और बंद हो जाता है। फिर जब मैं दूसरी बार आवेदन को फिर से खोलने की कोशिश करता हूं तो यह एप्लिकेशन को लॉगिन गतिविधि पर वापस खुलता है।

"चल रहे सेवा" अधिसूचना पूरी तरह से अधिसूचना पट्टी में पूरी तरह से बना रहता है हालांकि यह खोने के बावजूद ऐप बंद होने पर टीसीपी कनेक्शन। यह अच्छा नहीं है क्योंकि सेवा को लंबे समय तक सही तरीके से काम करने की आवश्यकता है।

सुनिश्चित करें आप startService के माध्यम से सेवा शुरू कर रहे हैं और न सिर्फ बाइंड सेवा। यदि आपको एक बाउंड सर्विस कॉल startService की आवश्यकता होती है, तो यह केवल उस चीज़ से अधिक समय तक चलता है जो इसे करने के लिए बाध्य है। आपने पहले ही उल्लेख किया है कि आप इसे अग्रभूमि सेवा के रूप में चला रहे हैं, यह अच्छा है अंत में, यदि आपके लिए इस मुद्दे को हल करने वाला कोई भी नहीं है, तो सेवा के लिए स्पष्ट घोषणा में ":" जोड़कर अपनी स्वयं की प्रक्रिया में सेवा चलाएं।


Comments