/ / जब भी यह चलना बंद हो जाता है, तो अलग-अलग इंस्टॉल किए गए एंड्रॉइड ऐप को फिर से कैसे चलाना है? - जावा, Android

जब भी यह चलना बंद हो जाए तो अलग-अलग इंस्टॉल किए गए एंड्रॉइड ऐप को फिर से कैसे चलाना है? - जावा, Android

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

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

यह बैकग्राउंड में भी चल सकता है और फोन लॉक या स्लीप मोड पर होने पर भी अपना काम कर सकता है, जिसे मैं अपने दम पर उस सामान को कोड कर सकता हूं।

तो यहाँ सौदा है, मैं दो की जरूरत हैकार्य / तरीकों / जो कुछ भी। एक है कि एक मौजूदा स्थापित अनुप्रयोग चल रहा है की स्थिति की जाँच करता है (मैं app आईडी या param के समान कुछ का उपयोग करके लगता है), भले ही यह उस पृष्ठभूमि में है जैसा कि मैंने उल्लेख किया है, यह खिड़की ध्यान केंद्रित करने की जरूरत नहीं है बस इसकी मौजूदा प्रक्रिया चल रही है या नहीं।

दूसरे फ़ंक्शन को मुझे अपनी आईडी के आधार पर एक ऐप चलाने की आवश्यकता है, जैसे कि मैंने इसकी चल रही स्थिति की जांच करने के बारे में क्या कहा।

यहाँ खोखले स्थानों में भरने के लिए एक नकली है अगरमैं इसे बहुत समझा रहा हूं, ध्यान दें कि मैं एंड्रॉइड जावा प्रोग्रामिंग के लिए नया हूं, लेकिन मुझे लगता है कि मैं थोड़ी तेजी से सीख रहा हूं क्योंकि मैं सी ++ के साथ पहले से ही अनुभवी हूं, इसलिए इसमें प्रोग्रामिंग के लिए नया होने से कम सीखना शामिल है।

कोड:

//check fires every step/update
If (CheckIfAppIsRunning("com.compamy.company") == False) { // or 0, whatever java does idont have my pc or eclipse in front of me right now
RunApp("com.company.example");
}

मैंने थोड़ी देर में यह नहीं किया, लेकिन मैं सकारात्मक हूं कि इस पर सभी को बीमार होना चाहिए। बस ए CheckIfAppIsRunning() और ए RunApp() समारोह।

धन्यवाद!! : डी

उत्तर:

जवाब के लिए 0 № 1

दुर्भाग्य से एंड्रॉइड में उस सरल को चलाने और न चलाने की अवधारणा नहीं है।

सबसे पहले, एंड्रॉइड आमतौर पर एप्लिकेशन प्रक्रियाओं को यथासंभव लंबे समय तक रखता है, इसलिए भी (रोका गया) ऐप को एक हल्की प्रक्रिया के रूप में चलाया जा सकता है, क्योंकि उपयोगकर्ता ऐप को फिर से शुरू करना चाहता था।

जिससे यह पता लगाना असंभव हो जाता है कि वास्तव में क्या प्रक्रिया चल रही है और क्या नहीं है।

लेकिन अच्छी खबर यह है कि एंड्रॉइड एक में पृष्ठभूमि का काम करता है सर्विस ऑब्जेक्ट जिसे अन्य घटकों द्वारा फिर से लॉन्च किया जा सकता है।

तो अगर मैं तुम थे मैं कोशिश करते हैं और उपयोग करते हैं गतिविधि प्रबंधक और चल रही सेवाओं की एक सूची प्राप्त करें। और उनसे स्थापित किए गए ऐप्स की सूची से तुलना करें पैकेज प्रबंधक पहचान करने के लिए कि क्या चल रहा है और क्या नहीं है।

अब यह मानते हुए कि आप किसी विशेष को पुनः लोड करना चाहते हैंसेवा, सभी सेवाओं के पास उन्हें शुरू करने के लिए सार्वजनिक इंटरफेस नहीं है (सार्वजनिक इरादे जो कि ऐप के "मैनिफ़ेस्ट। xml" में परिभाषित है) इसलिए आपको इसके बजाय पूरे ऐप को लॉन्च करने की आवश्यकता हो सकती है, जिसका अर्थ है दो चीजें:

  • इसे सामने लाया जाएगा, और जो भी उपयोगकर्ता कर रहा था वह बाधित हो जाएगा।
  • अगर निष्क्रिय मोड में डिवाइस कुछ नहीं होगा।