2016-11-17 12 views
24

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

फिर मैंने एंड्रॉइड 6.0 चलाने वाले एक हूवेई डिवाइस में इस विधि की जांच की। विधि कभी नहीं बुलाया जाता है। मैंने एक लॉग डी कॉल भी जोड़ा और जैसा कि अपेक्षित था, यह लॉग कभी प्रकट नहीं हुआ। XIOMI डिवाइस पर भी ऐसा ही होता है।

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

धन्यवाद

उत्तर

8

उपयोगकर्ता 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

पर स्वत: प्रारंभ गतिविधि पेज लांच करने के लिए
+0

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

+0

मैं भी उसमें फंस गया हूं कृपया मुझे मार्गदर्शन करें, उपर्युक्त समाधान जहां हमें हुवाई डिवाइस के लिए और अधिक करने की आवश्यकता है, हमें क्या करना है? –

16

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

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

+0

क्या इस तरह की सूची में ऐप को मजबूती से रखने का कोई तरीका है? क्या मैनिफेस्ट में करने का कोई विकल्प है? –

+0

नहीं। उपयोगकर्ता को ऐप स्वयं जोड़ना होगा। आप इसे प्रोग्रामिक रूप से नहीं कर सकते हैं। कुछ उपकरणों पर, ऐप को स्वचालित रूप से जोड़ा जा सकता है यदि यह Play Store (एडीबी के माध्यम से स्थापित होने के बजाय) से स्थापित है, लेकिन मुझे यकीन नहीं है कि कौन से डिवाइस ऐसा करते हैं। सब कुछ नहीं। –

+0

मैं लेनोवो फोन में ऐसे किसी भी विकल्प नहीं ढूंढ पा रहा हूं .. –

3

मैं किसी सेवा में डिवाइस को हटाए जाने पर यह पता लगाने के लिए एक सेवा में TaskRemoved() विधि का उपयोग कर रहा हूं, इसे हाल ही में स्वाइप करके इसे हटाकर।

David Wasser

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

जाओ और अपने अनुप्रयोग autostart करने के लिए अनुमति देते हैं:

Settings > permissions > Autostart

+0

ऑटोस्टार्ट प्रोग्रामेटिक तरीके को कैसे सक्षम करें, क्या यह इंस्टॉलेशन समय के समय में प्रकट हो सकता है? –

+0

सबसे पहले, यह केवल ज़ियामी और कुछ अन्य जापानी और चीनी हैंडसेट पर होता है। प्रोग्रामेटिक सक्षम करना संभव नहीं है क्योंकि यह वैश्विक हैंडसेट मुद्दा नहीं है। उपयोगकर्ता को सूचित करने के लिए 'onDeatroy' पर एक संदेश जोड़ना पसंदीदा तरीका है। मुझे अभी भी इसका समाधान मिल रहा है। – W4R10CK

2

मेरे Huawei में मैं भी porblem का सामना करना पड़ रहा था ऊपर कोड का उपयोग करें, बस settin जाना जी => पावर सेविंग => ऐप को सुरक्षित करें => अपना ऐप ढूंढें और इसे सक्षम करें .. सेवा चलना शुरू हो जाएगा ..

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