android app किसी सेवा से गतिविधि कैसे शुरू करें?



android p (4)

android.app.Service का वंशज है ताकि आप सीधे startActivity गतिविधि का उपयोग कर सकें। हालांकि चूंकि आप इसे किसी भी गतिविधि से बाहर शुरू करते हैं, इसलिए आपको इरादे पर FLAG_ACTIVITY_NEW_TASK ध्वज सेट करने की आवश्यकता है।

उदाहरण के लिए:

Intent i = new Intent();
i.setClass(this, MyActivity.class);
i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(i);

this आपकी सेवा है।

क्या किसी सेवा से गतिविधि शुरू करना संभव है? यदि हां, तो हम इसे कैसे प्राप्त कर सकते हैं?


Answer #1

यह निश्चित रूप से आपकी समस्या का समाधान करेगा

Intent intent = new Intent();
intent.setAction(Intent.ACTION_MAIN);
intent.addCategory(Intent.CATEGORY_LAUNCHER);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
ComponentName cn = new ComponentName(this, TaxiPlexer.class);
intent.setComponent(cn);
startActivity(intent);

Answer #2

यहां तक ​​कि यदि ढांचा आपको किसी सेवा से गतिविधि शुरू करने की अनुमति देता है, तो शायद यह उचित समाधान नहीं है। इसका कारण यह है कि जब सेवा उपयोगकर्ता के साथ बातचीत करना चाहती है तो सर्विस कार्य उपयोगकर्ता का फोकस हो सकता है या नहीं। वर्तमान में उपयोगकर्ता जो कर रहा है उसे बाधित करना खराब डिजाइन फ़ॉर्म माना जाता है, विशेष रूप से पृष्ठभूमि में परिचालन होने वाली किसी चीज़ से।

इसलिए, आपको अधिसूचना सेवा के साथ अधिसूचना का उपयोग करने पर विचार करना चाहिए, जिसमें वांछित गतिविधि लॉन्च करने के लिए लंबित इंंटेंट होता है जब उपयोगकर्ता निर्णय लेता है कि यह जांच करने का समय है। देरी संतुष्टि के रूप में इसके बारे में सोचें।


Answer #3

मुझे किसी सेवा से गतिविधि शुरू करने में कोई समस्या थी, यह अनुपलब्ध FLAG_ACTIVITY_NEW_TASK इरादा ध्वज के कारण था।





android