2011-07-11 9 views
10

में मेरे इरादे से झंडे को कैसे जोड़ना हम जानते हैं कि झंडे हैं जिन्हें हम अपने जावा कोड में addFlags() विधि का उपयोग करके हमारे इरादे में जोड़ सकते हैं। क्या जावा कोड में इसे लिखने के बजाय हम इन झंडे को मैनिफेस्ट फ़ाइल में जोड़ सकते हैं। मुझे मैनिफेस्ट में मेरी गतिविधियों में से एक के लिए REORDER_TO_FRONT ध्वज जोड़ने की आवश्यकता है।मैनिफेस्ट फ़ाइल

इसे कैसे प्राप्त करें?

उत्तर

6

मैनिफेस्ट फ़ाइल में आप इरादा झंडे नहीं जोड़ सकते हैं। आपको फ्लैग को उस इरादे में सेट करने की आवश्यकता है जिसे आप प्रारंभ करने के लिए पास करते हैं। यहाँ एक नमूना है: के बाद से इस Google खोज के पहले उत्तर के रूप में प्रकट होता है

Intent intent = new Intent(this, ActivityNameToLaunch.class); 
intent.addFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT); 
startActivity(intent); 
+7

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

3

मूल सवाल का जवाब करने के लिए, यह किया जा सकता है, के बाद से एपीआई स्तर 3 (2009 में शुरू) गतिविधि के android:noHistory="true" को जोड़ने के साथ यहां वर्णित मेनिफेस्ट फ़ाइल में परिभाषा: http://developer.android.com/guide/topics/manifest/activity-element.html#nohist

उदाहरण:

<activity 
    android:name=".MainActivity" 
    android:label="@string/app_name" 
    android:noHistory="true"> 
    <intent-filter> 
     <action android:name="android.intent.action.MAIN"/> 
     <category android:name="android.intent.cataegory.LAUNCHER"/> 
    </intent-filter> 
</activity> 
2

मैं एक ऐसी ही समस्या थी और आदेश शीर्ष करने के लिए हमेशा गतिविधि लाने के लिए झंडे

Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK 

सेट करने के लिए चाहता था।

इस परिदृश्य में, समाधान प्रकट में विशेषता

android:launchMode="singleInstance" 

स्थापित करने के लिए है।

आम तौर पर, एक गतिविधि के लिए एंड्रॉइड मैनिफेस्ट में कई विशेषताएं हैं, और आप झंडे के समान प्रभाव प्राप्त करने के लिए इनके साथ खेल सकते हैं।

+0

उत्कृष्ट संकेत, धन्यवाद! सिर्फ "चारों ओर खेलना" के बजाय तत्व के दस्तावेज को भी देखना चाह सकता है: https://developer.android.com/guide/topics/manifest/activity-element.html – Robin

0

आप आसानी से प्रकट की <activity> नोड में android:launchMode="singleTop" उपयोग करते हुए, इस तरह के साथ इस लक्ष्य को हासिल कर सकते हैं: सामान्य उपयोग के लिए विकल्प

<activity 
    android:name=".ui.activities.MainActivity" 
    android:launchMode="singleTop"> 
     <intent-filter> 
      <action android:name="android.intent.action.MAIN" /> 
      <category android:name="android.intent.category.LAUNCHER" /> 
     </intent-filter> 
</activity> 

ध्यान दें, कि android:launchMode="singleInstance" के रूप में यह @ Jörg-eisfeld द्वारा दिया जाता है अनुशंसित नहीं है, के रूप में यह आधिकारिक दस्तावेज में कहा गया है: https://developer.android.com/guide/topics/manifest/activity-element.html (एंड्रॉयड देखें: launchMode अनुभाग)

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