मैं एक ऐप लिख रहा हूं जिसके लिए आपको इसे इस्तेमाल करने से पहले किसी सेवा में लॉग इन होना आवश्यक है। एंड्रॉइड की मेरी समझ से अब तक, आपको यह चुनना होगा कि जब आप मैनेजर में लॉन्चर से खुलते हैं तो कौन सी गतिविधि लॉन्च की जाती है। मुझे नहीं पता कि मैं किस गतिविधि को संकलित समय पर लॉन्च करना चाहता हूं। मैं चाहता हूं कि उपयोगकर्ता आइकन पर क्लिक करें, फिर मैं जांचता हूं और देखता हूं कि वे लॉग इन हैं या नहीं, फिर उस पर आधारित निर्णय लें कि लॉगिन गतिविधि लॉन्च करना है या मुख्य ऐप गतिविधि है या नहीं। क्या इसे करने का कोई तरीका है?ऐप खोलने के दौरान मैं किस गतिविधि को लॉन्च करना चुन सकता हूं
उत्तर
नहीं, चूंकि आपको कुछ कोड चलाने होंगे, इसलिए यह कहने के लिए घोषणात्मक रूप से (प्रकट में) कोई रास्ता नहीं है।
final Class<? extends Activity> activityClass;
if(userIsLoggedOn())
activityClass = LoggedOnActivity.class;
else
activityClass = LogInActivity.class;
Intent newActivity = new Intent(context, activityClass);
context.startActivity(newActivity);
एक और तरीका है कि ऐसा करने के लिए उपयोग कर रहा है: यदि उपयोगकर्ता या लॉग ऑन नहीं है क्या दूसरी गतिविधि आशय के माध्यम से शुरू करने के लिए आप के आधार पर तय एक गतिविधि (मेनिफ़ेस्ट में सेट), तो इस गतिविधि है शुरू करने के लिए है activity-alias।
प्रकट में:
<activity android:name=".LoginActivity" android:icon="@drawable/ic_launcher_main" android:label="Login" > <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> <activity android:name=".MainActivity" android:icon="@drawable/ic_launcher_main" android:label="MainActivity" > </activity> <activity-alias android:name=".AliasActivity" android:label="AliasActivity" android:enabled="false" android:targetActivity=".MainActivity" > <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity-alias>
लॉगिन गतिविधि में 2.Somewhere:
String s = getApplicationContext().getPackageName(); ComponentName cm = new ComponentName(s, s+".AliasActivity"); ComponentName cm2 = new ComponentName(s, s+".Login"); PackageManager pm = this.getPackageManager(); pm.setComponentEnabledSetting(cm, PackageManager.COMPONENT_ENABLED_STATE_ENABLED, 1); pm.setComponentEnabledSetting(cm2, PackageManager.COMPONENT_ENABLED_STATE_DISABLED, 0);
उसके बाद, अनुप्रयोग एक बार मार डाला जाएगा और अगली बार जब आप का शुभारंभ ऐप, मेनएक्टिविटी लॉन्चर होगा।
कूल !! एकमात्र समाधान जो यूआई थ्रेड पर अतिरिक्त गतिविधि और साझा प्राथमिकताओं को पढ़ने की आवश्यकता नहीं है। आप 0 या 1 के बजाय FlagManager.DONT_KILL_APP ध्वज का उपयोग कर सकते हैं, इसलिए ऐप बाहर नहीं निकलेगा। अभी भी एक मुद्दा है जो मुझे इसका उपयोग करने से रोकता है: एंड्रॉइड स्टूडियो से अगला रन विफल रहता है। (गतिविधि अक्षम है) – auval
मैंने मुख्य गतिविधि के लिए एक रन कॉन्फ़िगरेशन जोड़कर इस सीमा के आसपास काम किया।तो यह समाधान अच्छी तरह से काम करता है – auval
यह उत्तर उस व्यक्ति को लगता है जिसे स्वीकार किया जाना चाहिए। –
जैसा कि ऊपर @auval ने कहा, मैं नीचे कोड का परीक्षण करता हूं और यह अच्छा करता है! अब जब आप पहली बार लांच
private void changeLauncher() {
String s = getApplicationContext().getPackageName();
ComponentName cm = new ComponentName(s, s + ".AliasActivity");
ComponentName cm2 = new ComponentName(s, s + ".LauncherActivity");
PackageManager pm = this.getPackageManager();
pm.setComponentEnabledSetting(cm,
PackageManager.COMPONENT_ENABLED_STATE_ENABLED,
PackageManager.DONT_KILL_APP);
pm.setComponentEnabledSetting(cm2,
PackageManager.COMPONENT_ENABLED_STATE_DISABLED,
PackageManager.DONT_KILL_APP);
}
,:
<activity
android:name=".LauncherActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN"/>
<category android:name="android.intent.category.LAUNCHER"/>
</intent-filter>
</activity>
<activity
android:name=".MainActivity">
</activity>
<activity-alias
android:name=".AliasActivity"
android:enabled="false"
android:targetActivity=".MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN"/>
<category android:name="android.intent.category.LAUNCHER"/>
</intent-filter>
</activity-alias>
दूसरे, आप इन कोड कहीं MainActivity.class में डाल कर सकते हैं: सबसे पहले, AndroidManifest.xml फ़ाइल इस तरह दिखना है ऐप, लॉन्चर एक्टिविटी लॉन्च की जाएगी और जब आप ऐप से बाहर निकलेंगे, तो एप फिर से चलाएं, मेनएक्टिविटी लॉन्च की जाएगी।
- 1. ब्राउज़र खोलने के लिए ACTION_VIEW गतिविधि प्रारंभ करना, मैं अपने ऐप पर कैसे लौट सकता हूं?
- 2. ऐप लॉन्च के दौरान सफेद पृष्ठभूमि
- 3. ऐप से लॉन्च सेवा, गतिविधि
- 4. मैं अपनी कस्टम यूआरएल योजना खोलने वाले ऐप को कैसे लॉन्च कर सकता हूं?
- 5. मैं कैसे चुन सकता हूं कि ड्रैशेम में किस भाषा का उपयोग करना है?
- 6. मैं किस फाइल को चेतावनी दिखाने के लिए चुन सकता हूं?
- 7. मैं एक पिक्चरबॉक्स कैसे चुन सकता हूं?
- 8. SQL सर्वर पर CASE के दौरान मैं एकाधिक कॉलम कैसे चुन सकता हूं?
- 9. लॉन्च गतिविधि एंड्रॉयड
- 10. LINQ के साथ मैं अद्वितीय कैसे चुन सकता हूं?
- 11. मैं हेरोोकू पर रूबी संस्करण कैसे चुन सकता हूं?
- 12. विशिष्ट गतिविधि के साथ एंड्रॉइड ऐप लॉन्च करें
- 13. jQuery में, मैं एक छुपा तत्व कैसे चुन सकता हूं?
- 14. विकास के दौरान मैं अपने ऐप के आकार को कैसे बता सकता हूं?
- 15. क्या मैं SQL सर्वर में 0 कॉलम चुन सकता हूं?
- 16. मेट्रो-स्टाइल ऐप के साथ डेस्कटॉप एप्लिकेशन लॉन्च करना
- 17. यूनिट परीक्षण चलाने के दौरान मैं ऐप इंजन लॉगिंग को कैसे दबा सकता हूं?
- 18. संक्रमण के दौरान पुराने गतिविधि के पीछे नई गतिविधि बनाएं
- 19. मैं एक गतिविधि से लॉन्च/भेजे गए इरादे का परीक्षण कैसे कर सकता हूं?
- 20. मेरे ऐप से बाहरी एप्लिकेशन लॉन्च करना
- 21. हमेशा मुख्य गतिविधि लॉन्च करें
- 22. नोडज/एक्सप्रेस - मेरे ऐप को लॉन्च करना: express.createServer() को
- 23. आपके ऐप से फ़ैसटाइम लॉन्च करना?
- 24. मैं जीवीआईएम खोलने के संवाद कैसे रोक सकता हूं?
- 25. एंड्रॉइड ऐप लॉन्च के लिए सुनो
- 26. पर्ल/मूस - मैं गतिशील रूप से किसी विधि के विशिष्ट कार्यान्वयन को कैसे चुन सकता हूं?
- 27. एंड्रॉइड लॉन्च ऐप देखें
- 28. एंड्रॉइड: लॉन्च गतिविधि पर विंडो पृष्ठभूमि सेट करना
- 29. (एंड्रॉइड) ऐप "लॉन्च" पर कुछ कैसे करें?
- 30. मैं निर्णय ले सकता हूं कि अनुरोधस्थान के लिए किस अंतराल का उपयोग करना है?
ध्यान देने योग्य एक बात यह है कि यूआई प्रदर्शित किए बिना एक गतिविधि लॉन्च करना संभव है, ताकि आप इसे ऐसा करने के लिए प्राप्त कर सकें जो आप चाहते हैं ... ध्यान दें कि आपका तर्क काफी जल्दी किया जाना चाहिए ताकि यह हो उपयोगकर्ता के लिए उल्लेखनीय नहीं है। बस अपनी गतिविधि के मैनिफेस्ट के अंदर निम्न कोड डालें: एंड्रॉइड: थीम = "@ एंड्रॉइड: स्टाइल/थीम .न डिस्प्ले" – Justin
क्या आप यह पता लगा सकते हैं कि आप किसी अन्य समय लॉन्च बनाम मुख्य पर जा रहे हैं? चूंकि कोई लॉन्च होने पर आधारित एक अलग गतिविधि प्राप्त करना चाहता है? – Androider
बहुत, बहुत अच्छा दृष्टिकोण, धन्यवाद! –