6

मेरे गेम ऐप में मैं उपयोगकर्ता को प्रारंभिक गतिविधि के दौरान Google Play सेवाओं में साइन इन करना चाहता हूं, इसलिए मेरे पास BaseGameActivity उप-वर्ग था। फिर गेम के लिए एक अलग गतिविधि शुरू की जाती है, जिसके अंत में मैं Google Play सेवाओं का उपयोग करके लीडरबोर्ड अपडेट करना चाहता हूं, जिसके लिए BaseGameActivity.getApiClient() पर कॉल करना आवश्यक है।कई गतिविधियों में BaseGameActivity.getApiClient() का उपयोग कैसे करें?

BaseGameActivity उपclasses की तुलना में मैं एक अलग गतिविधि से Google Play सेवाओं का उपयोग कैसे करना चाहिए?

दो विकल्प मैंने सोचा था: प्रारंभिक गतिविधि का संदर्भ पास करें, या एक हैंडलर का उपयोग करें और प्रारंभिक गतिविधि को एक संदेश भेजें। लेकिन मुझे नहीं पता कि किस विधि का उपयोग करना बेहतर होगा (या यदि कोई तीसरा तरीका बेहतर है) और ऐसा लगता है कि यह काफी आम स्थिति हो सकती है।

उत्तर

4

यदि आप कई गतिविधियों के साथ GameHelper का उपयोग करना चाहते हैं तो BaseGameActivity का उपयोग किए बिना इसे कार्यान्वित करना सबसे अच्छा है और फिर गतिविधियों के बीच अपना GameHelper उदाहरण पास करें (या कहीं एक स्थिर उदाहरण रखें)।

आप GameHelper सीधे on this page उपयोग करने के निर्देश (बिना BaseGameActivity शीर्षक का उपयोग GameHelper देखें) मिल सकता है।

बस यह सुनिश्चित करें कि आप अपनी सभी गतिविधियों में आवश्यक GameHelper कॉल (विशेष रूप से onActivityResult) रखें। साइन-ऑन/साइन-आउट के लिए आपको अपने ऐप के प्रवाह के आधार पर, स्वयं को निर्धारित करने की आवश्यकता होगी कि किस गतिविधि में उन्हें स्थान दिया जाए।

+0

क्या 'बेसगेम एक्टिविटी' से दोनों गतिविधियों को उपclass करने का कोई कारण नहीं है और जिस पर मैं स्वचालित रूप से साइन-ऑन नहीं करना चाहता हूं 'getGameHelper()। SetMaxAutoSignInAttempts (0); '? – GDanger

+0

आप ऐसा कर सकते हैं लेकिन 'बेसगेम एक्टिविटी' के 'ऑनक्रेट() 'प्रत्येक गतिविधि के लिए' एमहेल्पर 'को फिर से बनाएंगे और नई ऑब्जेक्ट की स्थिति जरूरी नहीं होगी - यानी नई ऑब्जेक्ट के आंतरिक राज्य इस बात को प्रतिबिंबित नहीं कर सकते हैं कि आप पहले से ही साइन-ऑन (या इसके विपरीत) हैं। मुझे यकीन है कि इसे ठीक से सिंक करने का एक तरीका है, लेकिन यह 'गेमहेल्पर' का स्वतंत्र रूप से उपयोग करने के विरोध में प्रयास की तरह लगता है। – free3dom

+2

'गेमहेल्पर' का स्वतंत्र रूप से उपयोग करने वाला मुद्दा AFAIK है, गतिविधियों के बीच अनियमित/पार्सेबल ऑब्जेक्ट्स (जैसे 'गेमहेल्पर') पास करने का कोई अच्छा तरीका नहीं है और इसे स्थैतिक बनाना एक बुरा विचार जैसा लगता है क्योंकि 'गेमहेल्पर' गतिविधि का संदर्भ रखता है जिसने इसे बनाया – GDanger

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