2013-01-23 24 views
7

फ्रीज करता है मैं अपने ऐप में Google AdMob SDK (हाल ही में डाउनलोड किया गया नवीनतम) का उपयोग कर रहा हूं।Google AdMob GADBannerView पहले अनुरोध में लंबा समय लगता है और यूआई

जब मेरा ऐप लॉन्च करता है तो यह 4-5 सेकेंड तक फ्रीज हो जाता है, जब तक कि विज्ञापन लोड और प्रदर्शित न हो जाए। बाद में यह आसानी से चलता है। जब मैं बैनर अनुरोध लाइन पर टिप्पणी करता हूं, तो ऐप सामान्य रूप से शुरू होता है।

मैंने एक कस्टम सहायक वर्ग बनाया है, जिसमें मेरे पास निम्न कोड है।

- (void) getGoogleBanner:(UIViewController *) targetController 
{ 
    self.googleBannerView.rootViewController = targetController; 
    [self.googleBannerView.rootViewController.view addSubview:self.googleBannerView]; 
    [self.googleBannerView setDelegate:self]; 
    GADRequest* request = [GADRequest request]; 
    [self.googleBannerView loadRequest:request]; 
} 

जहां

  • googleBannerView मेरी कक्षा की संपत्ति है, और प्रकार GADBannerView
  • मैं फ्रेम आकार और विज्ञापन इकाई आईडी पहले से ठीक से
  • targetController सेट नियंत्रक मैं चाहता है
  • पर बैनर जोड़ने के लिए मैं [कस्टम क्लास getGoogleBanner: self] विधि को विभिन्न विभिन्न नियंत्रकों के DidAppear को देखने और सफलतापूर्वक बैनर प्रदर्शित करने के लिए कॉल करता हूं वह पहला लोड मुद्दा।

मैं जानना चाहता हूं कि कोई इस समस्या में भाग गया है, और यह कैसे हल किया जाता है। मैं किसी भी विचार के लिए खुला हूं जो ठंडक मुद्दे को हटा देगा। मैंने पृष्ठभूमि थ्रेड पर कोड चलाने की कोशिश की, लेकिन मैं असफल रहा क्योंकि मुझे इसके साथ बहुत अनुभवी नहीं है।

किसी भी मदद की बहुत सराहना की जाती है, अग्रिम धन्यवाद।

+0

क्या आप विस्तार से बता सकते हैं कि आपके पास किस प्रकार का यूआई विशेष रूप से है और जहां GADBannerView आपके पदानुक्रम में है? एक 4-5 सेकंड देरी बहुत बड़ी लगती है, क्या आप कुछ जटिल ड्राइंग/एनीमेशन कर रहे हैं? – RajPara

+0

मैं कोई जटिल ड्राइंग नहीं कर रहा हूं। असल में सभी एप्लिकेशन में UIViews और 2-3 TableViews शामिल हैं। टेबल में 50 से अधिक तत्व नहीं होते हैं। मैंने loadRequest भेजने की भी कोशिश की है: पृष्ठभूमि थ्रेड के लिए विधि, हालांकि यह पृष्ठभूमि थ्रेड से मुख्य विंडो को संशोधित करने से संबंधित एक त्रुटि के साथ काम नहीं करता है। यह फ़ंक्शन शायद पहले से ही असीमित है, क्योंकि यह एक स्टैंडअर्ट Google विधि है और प्रतिक्रिया Google बैनर व्यू प्रतिनिधि द्वारा प्राप्त की जाती है। –

+0

यह वही होता है जो वह मेरे लिए होता है! क्या आपको कोई समाधान मिला? – Aitul

उत्तर

2

मुझे सिम्युलेटर में चलते समय केवल समस्या मिली है, इसलिए यदि ऐसा है, तो आपको शायद चिंता नहीं करनी चाहिए।

loadRequest विधि को कॉल करते समय, मुझे क्या मिल सकता है, फ्रेमवर्क canOpenURL: विधि (UIApplication) भी कॉल करेगा। कुछ परीक्षणों से जो मैंने भाग लिया (सिम्युलेटर और आईओएस डिवाइस पर 5.1.1 और 6.1.3 के साथ), canOpenURL कभी-कभी सिम्युलेटर पर कुछ सेकंड के लिए फ्रीज करता है (एक बार इसे वापस करने में 20 सेकंड लगते हैं), हालांकि, डिवाइस पर अच्छी तरह से काम करता है ।