2011-12-29 20 views
5

मेरे पास एक ऐसा प्रोग्राम है जिसे मैंने एंड्रॉइड 1.6 और ऊपर के लिए बनाया है और मैं यह सुनिश्चित करने के लिए परीक्षण कर रहा हूं कि कार्यक्रम नए आइस क्रीम सैंडविच (एंड्रॉइड 4) के साथ ठीक काम करता है।आइस क्रीम सैंडविच पर ब्राउज़र लॉन्च करना

ऐप पर सबकुछ ठीक काम करता है सिवाय इसके कि जब उपयोगकर्ता द्वारा एक निश्चित कार्य किया जाता है तो यह स्वचालित रूप से एंड्रॉइड ब्राउज़र लॉन्च करना होता है। हालांकि किसी कारण से यह पृष्ठभूमि में इसे लोड करने लगता है और मेरे ऐप को दिखाता है जो मैं नहीं चाहता हूं।

एंड्रॉइड के हर दूसरे संस्करण पर जब मैं ब्राउजर लॉन्च करने के लिए कोड निष्पादित करता हूं तो ब्राउजर स्क्रीन के शीर्ष पर आता है इसलिए मेरा ऐप पृष्ठभूमि में होता है जिससे मैं इसे काम करना चाहता हूं।

नीचे कोड मैं ब्राउज़र

Intent intent = new Intent(); 
intent.setAction(Intent.ACTION_VIEW); 
intent.addCategory(Intent.CATEGORY_BROWSABLE); 
intent.setData(Uri.parse(companyURL)); 
startActivity(intent); 

companyURL एक चर है कि मैं ब्राउज़र के लिए URL पार्स करने के लिए उपयोग कर रहा हूँ है शुरू करने के लिए होता है।

आपकी सहायता के लिए धन्यवाद।

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

+0

जो कुछ आप यहां दिखा रहे हैं उससे कहीं अधिक कुछ होना चाहिए। मंच और मानक ऐप्स में सभी प्रकार की चीजें ब्राउज़र को ACTION_VIEW और एक यूआरआई (जैसे ईमेल या जीमेल ऐप्स में किसी लिंक पर क्लिक करने) के साथ लॉन्च करती हैं, और ये ठीक काम करती हैं। – hackbod

उत्तर

0

इरादे पर FLAG_ACTIVITY_BROUGHT_TO_FRONT ध्वज जोड़ने का प्रयास करें।

+0

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

1

कृपया इसे आज़माएं यह मेरे लिए आईसीएस पर काम कर रहा है।

Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(companyURL)); 
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
startActivity(intent); 
+0

आपकी मदद के लिए धन्यवाद। यह वही काम कर रहा है जो मेरे पास था कि ब्राउज़र पहली बार दिखाई देगा। लेकिन दूसरी बार ब्राउजर पृष्ठभूमि में पेज खोल देगा।एकमात्र अंतर यह है कि यह लॉन्चर मेनू पर फिर से जाएगा जहां अब यह होम स्क्रीन पर वापस आ जाएगा। – Boardy

+0

इस ध्वज को जोड़ने का प्रयास करें 'FLAG_ACTIVITY_CLEAR_TOP' – Sunny

+0

अभी भी वही काम कर रहा है। बिट अजीब क्यों है कि मुझे केवल आईसीएस में कोई समस्या नहीं है और कोई अन्य संस्करण नहीं है – Boardy

1

आमतौर पर आपको CATEGORY_BROWSABLE श्रेणी की आवश्यकता नहीं है। प्रयास करें बजाय निम्नलिखित:

क्रियाएँ कि सुरक्षित रूप से लागू किया जा सकता है:

Intent intent = new Intent(); 
intent.setAction(Intent.ACTION_VIEW); 
intent.setData(Uri.parse(companyURL)); 
startActivity(intent); 

वास्तव में, प्रलेखन CATEGORY_BROWSABLE विपरीत दिशा (आपके ऐप्लिकेशन के लिए ब्राउज़र) में इस्तेमाल किया जा करने का इरादा है सुझाव है कि लगता है एक ब्राउज़र को इस श्रेणी का समर्थन करना चाहिए। उदाहरण के लिए, यदि उपयोगकर्ता टेक्स्ट में किसी लिंक पर एक वेब पेज या ई-मेल और क्लिक देख रहा है, तो इरादा उत्पन्न हुआ है कि उस लिंक को ब्रॉस्सेबल श्रेणी की आवश्यकता होगी, ताकि इस श्रेणी का समर्थन करने वाली गतिविधियों को केवल संभावित कार्रवाइयां माना जाएगा ।

http://developer.android.com/reference/android/content/Intent.html#CATEGORY_BROWSABLE

0

मैं निम्नलिखित कोड का उपयोग कर रहा है और इसके लिए मेरे साथ ठीक काम कर रहा यहाँ तक कि जब ब्राउज़र पहले से ही पृष्ठभूमि में चल रहा है।

Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse("http://www.google.com")); 
startActivity(intent); 
संबंधित मुद्दे