दिलचस्प पोस्ट
Django के माध्यम से जावास्क्रिप्ट को पायथन डेटा पास करना विस्तारित वर्ग के भीतर से 'इस' कीवर्ड को एक्सटेंशन विधि को कॉल करने की आवश्यकता क्यों है? स्थिर सूचकांक? एंड्रॉइड में वापस बटन अक्षम करें एक डबल से एक्स महत्वपूर्ण आंकड़े गोल करें सेलेनियम वेबड्रिवर में पॉपअप जावा एसोसिएटिव- सरणी मैं PHP में कॉलबैक कैसे लागू करूं? स्कीमा स्थान या noNamespaceSchemaLocation का उपयोग करके XSD से एक्सएमएल लिंक कैसे करें? डुप्लिकेट्स को सूची से <T> सी # में हटाएं __slots__ का उपयोग? जेक्यूजीआरआईडी – चेक बॉक्स चयन राज्य को बनाए रखें – पेज रिफ्रेश / रीडायर / रीलोड क्या रेज़र के साथ एक सामान्य @ हाल्पर विधि बनाना संभव है? एंड्रॉइड: अदृश्य और चले गए बीच का अंतर? मैं सी # का उपयोग कर एक विंडोज़ सेवा से एक EXE प्रोग्राम कैसे चला सकता हूँ?

अग्रभूमि (स्टैक के ऊपर) को कैसे गतिविधि लाया जाए?

एंड्रॉइड में, मैंने एक गतिविधि उदाहरण गतिविधि परिभाषित की

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

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

मैं ऐसा करने के लिए कोड कैसे लिख सकता हूँ?

वेब के समाधान से एकत्रित समाधान "अग्रभूमि (स्टैक के ऊपर) को कैसे गतिविधि लाया जाए?"

आप इस FLAG_ACTIVITY_REORDER_TO_FRONT को आज़मा FLAG_ACTIVITY_REORDER_TO_FRONT (दस्तावेज़ का वर्णन वास्तव में आप क्या करना चाहते हैं)

एंड्रॉइड होम स्क्रीन का उपयोग करने वाला सबसे अच्छा तरीका यह था कि ऐप लॉन्चर।

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

 Intent i = new Intent(this, MyMainActivity.class); i.setAction(Intent.ACTION_MAIN); i.addCategory(Intent.CATEGORY_LAUNCHER); startActivity(i); 

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

यहां कोड-उदाहरण दिया गया है कि आप यह कैसे कर सकते हैं:

 Intent intent = getIntent(getApplicationContext(), A.class) 

इससे यह सुनिश्चित होगा कि आपके स्टैक पर एक गतिविधि का केवल एक उदाहरण है।

 private static Intent getIntent(Context context, Class<?> cls) { Intent intent = new Intent(context, cls); intent.addFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT); return intent; } 

मुझे लगता है कि Intent झंडे के संयोजन को चाल करना चाहिए विशेष रूप से, Intent.FLAG_ACTIVITY_CLEAR_TOP और Intent.FLAG_ACTIVITY_NEW_TASKIntent.FLAG_ACTIVITY_NEW_TASK

startActvity से पहले इन झंडे को अपने इरादे में जोड़ें।

FLAG_ACTIVITY_REORDER_TO_FRONT : यदि प्रसंग .startActivity () में उत्तीर्ण किया गया है, तो यह ध्वज लॉन्च गतिविधि को अपने कार्य के इतिहास स्टैक के सामने लाया जाएगा, अगर यह पहले से ही चल रहा है।

 Intent i = new Intent(context, AActivity.class); i.setFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT); startActivity(i); 

सामान्य तौर पर मुझे लगता है कि गतिविधि प्रबंधन की इस पद्धति का अनुशंसित नहीं है। स्टैक में दो कदम नीचे एक गतिविधि को सक्रिय करने की समस्या यह है कि इस गतिविधि की संभावना को मार दिया गया है। अपनी गतिविधियों की स्थिति को याद रखने और शुरुआत के साथ उन्हें लॉन्च करने के लिए मेरी सलाह startActivity ()

मुझे यकीन है कि आपने यह पृष्ठ देखा है लेकिन आपकी सुविधा के लिए यह लिंक

i.setFlags(Intent.FLAG_ACTIVITY_BROUGHT_TO_FRONT);

नोट आपका होमएक्टिविटी लॉन्चमैोड एकल_टास्क होना चाहिए

यदि आप एक अधिसूचना पर क्लिक करते समय स्टैक के शीर्ष पर किसी गतिविधि को लाना चाहते हैं, तो आपको FLAG_ACTIVITY_REORDER_TO_FRONT कार्य करने के लिए निम्न कार्य करने की आवश्यकता हो सकती है:

इसके लिए मेरे लिए एक समाधान प्रसारण रिसीवर बनाना था जो कि सूचना को ट्रिगर करने वाले प्रसारण कार्यों को सुनता है। तो मूल रूप से:

  1. अधिसूचना शुरू करने की गतिविधि के अतिरिक्त एक नाम के साथ एक प्रसारण कार्य को चालू करता है

  2. सूचना प्राप्त होने पर प्रसारण रिसीवर यह पकड़ता है, फिर उस गतिविधि को FLAG_ACTIVITY_REORDER_TO_FRONT फ्लैग का उपयोग करने के लिए एक उद्देश्य बनाता है

  3. गतिविधि गतिविधि स्टैक के शीर्ष पर लाई जाती है, कोई डुप्लिकेट नहीं

यदि आप "लंबितइन्टेन्ट" वर्ग के साथ पुश नोटिफिकेशन प्राप्त करने के लिए "Google क्लाउड संदेश" का उपयोग कर रहे हैं, तो निम्न कोड केवल एक्शन बार में सूचना प्रदर्शित करता है

अधिसूचना पर क्लिक करने से कोई भी गतिविधि नहीं बनाई जाएगी, आखिरी सक्रिय गतिविधि को समस्याओं के बिना वर्तमान स्थिति को बनाए रखना बहाल किया जा सकता है।

Intent notificationIntent = new Intent(this, ActBase.class); **notificationIntent.setAction(Intent.ACTION_MAIN); notificationIntent.addCategory(Intent.CATEGORY_LAUNCHER);** PendingIntent contentIntent = PendingIntent.getActivity(this, 0, notificationIntent, 0);

NotificationCompat.Builder mBuilder = new NotificationCompat.Builder(this) .setSmallIcon(R.drawable.ic_launcher) .setContentTitle("Localtaxi") .setVibrate(vibrate) .setStyle(new NotificationCompat.BigTextStyle().bigText(msg)) .setAutoCancel(true) .setOnlyAlertOnce(true) .setContentText(msg);

mBuilder.setContentIntent(contentIntent);

NotificationManager mNotificationManager = (NotificationManager) this.getSystemService(Context.NOTIFICATION_SERVICE);

mNotificationManager.notify(NOTIFICATION_ID, mBuilder.build());

Ciao!