2011-04-11 16 views
9

गतिविधि लेआउट के बाद ही मैं सेवा कैसे बना/बांध सकता हूं?लेआउट प्रतिपादन पूरा होने के बाद एंड्रॉइड कॉल वापस आ गया है?

- अद्यतन

मैं मुख्य गतिविधि पर दो टैब (अलग गतिविधियों के रूप में दोनों) और टैब के लिए इस्तेमाल किया डेटा सेवा से आता है। अभी मैं onCreate विधि के अंदर बाध्यकारी सेवा कर रहा हूं। समस्या यह है कि onCreate के अंदर सभी बयान समाप्त होने तक लेआउट प्रस्तुत नहीं किया जाता है। एक रिक्त स्क्रीन तब तक दिखाई जाती है जब तक सेवा

+0

'काम करते हैं onCreate' के अंत में कोड रखने नहीं है? – ernazm

+0

@ कॉमन्सवेयर क्योंकि इसकी मुख्य गतिविधि पर दो टैब (अलग-अलग गतिविधियों के रूप में) हैं और टैब के लिए उपयोग किया जाने वाला डेटा सेवा से आता है। अभी मैं 'ऑनक्रेट' विधि के अंदर बाध्यकारी सेवा कर रहा हूं। समस्या यह है कि 'ऑनक्रेट' के अंदर सभी बयान समाप्त होने तक लेआउट प्रस्तुत नहीं किया जाता है। एक रिक्त स्क्रीन तब तक दिखाई जाती है जब तक सेवा –

+1

पी बाध्य नहीं होती है: फिर टैब में गतिविधियां न रखें। जो कुछ करता है वह अपशिष्ट स्टैक स्पेस, कचरा ढेर स्पेस, अपशिष्ट सीपीयू चक्र (और, इसलिए, बैटरी), और इस तरह की परिस्थितियों को और अधिक जटिल बनाता है। बस अपने टैब के लिए 'दृश्य' का उपयोग करें। आपके पास केवल एक गतिविधि है, और आप सामान्य पर 'ऑनक्रेट()' के दौरान बाध्य कर सकते हैं। – CommonsWare

उत्तर

1

अपनी ऑनक्रेट गतिविधि के अंत में सेवा को बनाने/बांधने के लिए कॉल करें। यदि प्रक्रिया के बहुत अंत में इसे बिल्कुल बांधना/बनाना चाहिए, तो आप अपनी गतिविधि में एक बुलियन ध्वज जोड़ सकते हैं जो दर्शाता है कि आप पहले से ही बाध्य हैं या पहले से ही सेवा बना चुके हैं। इस प्रकार आप तब onResume() रद्द कर सकते थे:

@Override 
public void onResume() { 
    super.onResume(); 
    if (!flag) { 
      // Call code to bind/create the service. 
    } 
} 
संबंधित मुद्दे