2011-10-25 9 views
5

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

ऐसा लगता है कि इसे पूरा करने का एकमात्र तरीका यह है कि WebView किसी सेवा में रहें (क्योंकि किसी भी समय ओएस द्वारा गतिविधियां मार दी जा सकती हैं)। क्या किसी को पता है कि यह कैसे काम करेगा? मैंने पढ़ा है कि वेब व्यू केवल क्रियाकलापों में रह सकते हैं।

धन्यवाद !!

उत्तर

4

वेब व्यू केवल गतिविधियों में रह सकते हैं क्योंकि वे यूआई घटक हैं। इस समस्या को हल करने के लिए आपके लिए सबसे अच्छा तरीका संचार को ऑफ़लोड करना है कि आपका जावास्क्रिप्ट सेवा में ही कर रहा है। यह सिर्फ एंड्रॉइड काम करता है। एकमात्र अन्य समाधान यह है कि अपने जावास्क्रिप्ट/सर्वर संचार को गलती-सहिष्णु बनाना पर्याप्त है कि यह किसी भी समय कनेक्शन खोने का सामना कर सकता है। इसे कैसे करें इस पर विचारों के लिए, मैं आरईएसटी मॉडल में देखता हूं। यदि आप एंड्रॉइड के साथ आरईएसटी का उपयोग करने पर एक बेहतर विचार प्राप्त करना चाहते हैं, तो मैं यह video from Google IO सुझाता हूं। आज तक, यह मेरे पसंदीदा में से एक है।

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

Context.startActivity(intent) 

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

नीचे की रेखा है, डिवाइस कनेक्टिविटी के मामले में 100% विश्वसनीय होने के लिए डिज़ाइन नहीं किए गए हैं। आपके लिए सबसे बढ़िया चीज आपको ऐप चश्मा बदलना होगा ताकि वे अधिक गलती सहनशील हों।

यह धुंधला हो सकता है, लेकिन ऐसा कुछ भी नहीं है जो मैं कह सकता हूं "ऐसा मत करो। इसे कभी मत करो।" अधिक रचनात्मक रूप से, मैं कहूंगा कि यदि आप सही काम करते हैं, तो आप अपनी सामग्री को पृष्ठभूमि में धकेलने में सक्षम होना चाहिए और उपयोगकर्ता को इसके बारे में परेशान नहीं करना चाहिए। याद रखें, केआईएसएस, यह सिर्फ एक सेना के साथ एक बैंड नहीं है। यह एक सुंदर दर्शन है। मूर्ख इसे सहज ही रखो। आप इस video पर एक नज़र डालना चाहते हैं, यह मेरे पसंदीदा में से एक है और आपको एक अलग स्थिति में लाने में मदद कर सकता है। क्या यह सहायक है?

+0

ठीक है, यह समझ में आता है। क्या आप मेरे ऐप को सामने लाने की समस्या पर कुछ प्रकाश डाल सकते हैं? – TomBomb

+0

आपके प्रश्न के आगे के पते पर मेरी प्रतिक्रिया संपादित की गई। –

+0

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

1

टॉमबॉम्ब, मेरे पिछले उत्तर को स्वीकार करने के लिए धन्यवाद लेकिन मुझे लगता है कि मेरे पास आपके लिए कुछ और उपयोग हो सकता है। किसी गतिविधि को अग्रभूमि में आने के लिए मजबूर करने के बजाय, अपने उपयोगकर्ताओं को सर्वर से कुछ नया पता करने के लिए Status Bar Notification का उपयोग क्यों न करें?

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