android onTaskRemoved() HUAWEI और XIOMI उपकरणों में नहीं बुलाया जा रहा है




service (5)

मैं एक सेवा में onTaskRemoved() पद्धति का उपयोग कर रहा हूं ताकि यह पता लगाया जा सके कि किसी ऐप को डिवाइस RECENT सूची से निकालकर उसे स्वाइप करके हटा दिया गया था। मैं कुछ लॉगिंग और कुछ अन्य परिचालनों को रोक देता हूं, जब ऐसा होता है। यह पूरी तरह से काम करता है।

फिर मैंने एक एंड्रॉइड 6.0 पर चलने वाले HUAWEI डिवाइस में इस विधि की जांच की। विधि कभी नहीं कहा जाता है। मैंने एक Log.d कॉल भी जोड़ा और जैसी कि उम्मीद थी, यह लॉग कभी दिखाई नहीं दिया। ऐसा ही एक XIOMI डिवाइस पर होता है।

कोई भी विचार ऐसा क्यों होता है और इसे कैसे हल किया जाए? या क्या कोई अन्य तरीका है जिससे पता लगाया जा सके कि एप्लिकेशन को onTaskRemoved() सूची से onTaskRemoved() पर निर्भर होने के onTaskRemoved() हटा दिया गया था?

धन्यवाद

https://code.i-harness.com


मैं एक सेवा में onTaskRemoved () पद्धति का उपयोग कर रहा हूं ताकि यह पता लगाया जा सके कि किसी ऐप को डिवाइस RECENT सूची से निकालकर उसे स्वाइप करके हटा दिया गया था।

द्वारा दिए गए उत्तर पर अधिक प्रकाश

यह Xiaomi पर नया नहीं है क्योंकि Xiaomi में ऐप अनुमति नाम की एक सुविधा है, जहां उपयोगकर्ता को ऐप को स्वचालित रूप से शुरू करने की अनुमति देनी होती है (सेवा)। आपके मामले में Service को नहीं बुलाया जाता है, एक बार इसके स्टैक से समाप्त कर दिया जाता है।

इस तरह जाएं और अपने ऐप को ऑटोस्टार्ट करने दें:

Settings > permissions > Autostart


अस्वीकरण: यह अच्छा समाधान नहीं है .. यह हैक है

आप उपयोगकर्ता द्वारा ऐप को मार सकते हैं

अपने घोषणापत्र में -> गतिविधि टैग के अंदर -> निम्नलिखित पंक्ति जोड़ें

एंड्रॉयड: excludeFromRecents = "true"

आपका ऐप हाल के ऐप्स इतिहास में नहीं दिखा है। इसलिए उपयोगकर्ता ऐप को नहीं मार सकता है।


कुछ उपकरणों (कुछ एलजी, हुआवेई, श्याओमी, और अन्य) पर आपके ऐप को "सुरक्षित ऐप्स" या "बैकग्राउंड में चलने की अनुमति देने वाले ऐप" की सूची में मैन्युअल रूप से जोड़ने की आवश्यकता है जो एंड्रॉइड के लिए STICKY सेवाओं को पुनरारंभ करने के लिए आदेश में हैं। यदि आपका ऐप मैन्युअल रूप से इस सूची में नहीं जोड़ा गया है, तो एंड्रॉइड सिर्फ आपकी प्रक्रियाओं को मारता है और उन्हें फिर से शुरू नहीं करता है और onTaskRemoved() भी नहीं कहता है। यह उन ऐप्स की संख्या को सीमित करके बैटरी जीवन को संरक्षित करने के लिए किया जाता है जिनकी पृष्ठभूमि में STICKY सेवाएं चल सकती हैं।

ऐसे उपकरणों पर आपको "सेटिंग" में एक पृष्ठ देखना चाहिए, कभी-कभी "पावर मैनेजमेंट" के तहत, कभी-कभी अन्य स्थानों पर, जहां आपको अपना एप्लिकेशन स्पष्ट रूप से जोड़ना होगा। आपको अपने उपयोगकर्ताओं को इस सूची में अपना ऐप स्पष्ट रूप से जोड़ने की आवश्यकता होगी।


जब उपयोगकर्ता ने आपका ऐप xiaomi डिवाइस पर स्थापित किया है, तो उपयोगकर्ता को ऑटो स्टार्ट गतिविधि पर पुनर्निर्देशित करें और उपयोगकर्ता को स्विच करने के लिए कहें:

if (Build.BRAND.equalsIgnoreCase("xiaomi")) {
                Intent intent = new Intent();
                intent.setComponent(new ComponentName("com.miui.securitycenter", "com.miui.permcenter.autostart.AutoStartManagementActivity"));
                startActivity(intent);
            }

Xiaomi पर ऑटोस्टार्ट गतिविधि पृष्ठ लॉन्च करने के लिए उपरोक्त कोड का उपयोग करें


माय हुआवेई में भी मुझे पोरेलम का सामना करना पड़ा, बस सेटिंग => पावर सेविंग => प्रोटेक्ट ऐप => अपना ऐप ढूंढें और इसे सक्षम करें .. सेवा चालू हो जाएगी ।।





huawei