2010-02-18 18 views
6

मेरे पास एक प्रोग्राम है जो एक स्पलैश स्क्रीन दिखाता है। लेकिन समस्या तब होती है जब भी मैं एक ही पृष्ठ को फिर से ताज़ा करता हूं, ऐसा प्रतीत होता है। क्या स्प्लैश स्क्रीन को बार-बार रोकने के लिए कोई तरीका है। मुझे लगता है कि यह पहली बार आता है बार बार। धन्यवादएंड्रॉइड स्प्लैश स्क्रीन

उत्तर

3

तो आप मूल रूप से स्प्लैश स्क्रीन प्रति ऐप लॉन्च के बाद प्रकट करना चाहते हैं। यहां एक त्वरित और गंदे तरीका है: के रूप में, कहते हैं, MyApp

  1. उपवर्ग android.app.Application;
  2. उस श्रेणी को AndroidManifest.xml (<application android:name=".MyApp" ... >) में घोषित करें ताकि यह ऐप लॉन्च समय पर तुरंत हो सके;
  3. यह एक public static boolean SPLASH_SHOWN = false;
  4. शो छप दें अब, अपने Activity के onCreate() जाँच में अगर SPLASH_SHOWN = false, और true पर सेट करें।
+2

अगर के लिए ठीक से काम करेंगे (SPLASH_SHOWN == गलत) { \t छप = (imageView) findViewById (R.id.splashscreen); \t splash.setBackgroundResource (R.drawable.splash); \t संदेश संदेश = नया संदेश(); \t msg.what = STOPSPLASH; \t splashHandler.sendMessageDelayed (msg, SPLASHTIME); \t splash.set दृश्यता (देखें। VISIBLE); \t SPLASH_SHOWN = सत्य; } – BIBEKRBARAL

0

यदि आप एक ही दृश्य में स्प्लैश स्क्रीन को अन्य दृश्य लेआउट (मुख्य लेआउट) के साथ लागू करते हैं - उदाहरण के लिए, पहले स्प्लैश स्क्रीन प्रदर्शित करें, फिर मुख्य लेआउट पर दृश्य को घुमाएं - मैं सामग्री दृश्य को नियंत्रित करने का सुझाव देता हूं onResume() में सेटिंग। स्प्लैश स्क्रीन प्रदर्शित की गई है या नहीं, यह याद रखने के लिए एक बूलियन चर (displayedSplash) का उपयोग करें। यदि यह प्रदर्शित नहीं किया गया है (पहली बार गतिविधि शुरू करें, प्रदर्शित स्पेप्श == झूठी), तो मुख्य लेआउट पर स्विच के बाद दृश्य को स्प्लैश स्क्रीन पर सेट करें और displayedSplash = true सेट करें। यदि इसे प्रदर्शित किया गया है (पृष्ठ को रीफ्रेश करें, प्रदर्शित स्पेप्श == सत्य), तो दृश्य को मुख्य लेआउट पर सेट करें।

सरल स्पलैश स्क्रीन के लिए एक और सरल और सुरक्षित समाधान इसे एक गतिविधि के रूप में कार्यान्वित कर रहा है, फिर मुख्य गतिविधि शुरू करें। जब onResume() दूसरी बार कहा जाता है, तो गतिविधि को समाप्त करें। विवरण के लिए कृपया this Wiki देखें।

0

अधिकांश बार मैं स्प्लैश गतिविधि में रोक() विधि के अंदर फिनिश() विधि को कॉल करता हूं। यह मैं

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